现在我正在遵循一个教程,我正在开发一个简单的游戏应用程序,试图理解和使用 MVVM 应用程序架构。在我的 ViewModel 类中,我有一个包含玩家得分的字段。
分数变量声明如下:
private val _score = MutableLiveData<Int>()
val score: LiveData<Int>
get() = _score
现在,在我的 UI Controller 类中,我观察到的分数如下:
viewModel.score.observe(this, Observer { newScore ->
binding.scoreText.text = newScore.toString()
})
所以,我的问题是为什么我需要第二次声明分数?难道我就不能拥有一个
val score = MutableLiveData<Int>()
并像上面一样观察它?我试过了,有效。
最佳答案
它会起作用的。这样做的目的是确保对该变量的更改仅发生在一个位置,即您的 ViewModel。这只是人们遵循的一种模式,可以让您更轻松地调试并确保应用程序/ View 的状态正确。一source from Google我在这里找到了,尽管我确信还有更多
关于android - 使用 LiveData 时,为什么要在 ViewModel 类中双重声明变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69568203/