gpt4 book ai didi

android - 带 LiveData 的 ViewModel 与不带 LiveData 的 ViewModel 有何不同?

转载 作者:行者123 更新时间:2023-12-02 00:55:08 26 4
gpt4 key购买 nike

我阅读了许多关于 viewmodel 和 livedata 的教程,但我并没有在 mvvm 模式的 viewmodel 类中实际使用 livedata。提前致谢。

最佳答案

Android 开发人员通常使用 ViewModel 作为这样的 LiveData 容器

class MyViewModel {
val myLiveData = MutableLiveData<String>()
}

但是,我们为什么不使用 String直接上课?
class MyViewModel {
val myString = "Hello"
}

因为我们想对字符串使用观察者模式。
model.myLiveData.postValue("Echo")

model.myLiveData.observe(this, Observer {
// Show "Echo"
toast(it)
})

那我们为什么需要 ViewModel 呢?因为我们想在我们的 Activity 或 Fragment 上获得相同的 ViewModel 实例(单例)。
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
viewModel = ViewModelProviders.of(this)[MyViewModel::class.java]
viewModel.myLiveData.observe(this, Observer {
textView.text = it
})

我认为这应该足以开始看到 ViewModel 和 LiveData 之间的区别。

Different between ViewModel with LiveData vs ViewModel Without LiveData?



这取决于您,您是否需要 ViewModel 上的 LiveData?

i do not get actually use of livedata within viewmodel class in mvvm pattern.



了解 ViewModel 和 LiveData 的区别后,请阅读更多关于 MVVM 模式的内容。

Model-View-View-Model 中的 View Model 与 Jetpack 的 ViewModel 和 LiveData 不一样。
MVVM 中的 View Model 是一个概念,您可以使用普通的 Java 类创建自己的 View Model。只要它符合 MVVM 行为。

关于android - 带 LiveData 的 ViewModel 与不带 LiveData 的 ViewModel 有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54841587/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com