【问题标题】:Why should I double declare a variable in a ViewModel class when using LiveData?为什么在使用 LiveData 时要在 ViewModel 类中双重声明变量?
【发布时间】:2021-10-14 09:21:58
【问题描述】:

现在我正在学习一个教程,我正在开发一个简单的游戏应用程序,试图理解和使用 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>()

并像上面一样观察它?我试过了,效果很好。

【问题讨论】:

    标签: android kotlin mvvm


    【解决方案1】:

    它会起作用的。这样做的目的是确保对该变量的更改仅发生在一个地方,即您的 ViewModel。这只是人们遵循的一种模式,使您更容易调试并确保您的应用程序/视图的状态是正确的。我在这里找到了一个source from Google,尽管我确信还有更多

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-17
      • 2012-08-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多