我正在使用MVVM体系结构,并且很难弄清楚从LiveData中观察到的值存储在哪里,这仅需要在相同onActivityResult()
的Activity
或其他方法中的if语句中使用。
假设我有这种方法,可以观察viewModel
中Activity
中的实时数据。
fun subscribeObservers() {
myViewModel.liveData.observe(viewLifeCycleOwner, Observer { myLiveDataString ->
setTextField(myLiveDataString)
});
}
我想使用从LiveData中观察到的特定值,即onActivityResult
的Activity
。假设这样
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == RC) {
if (myLiveDataString == "ERROR") {
showErrorDialogToUser()
}
}
}
所以我的问题是我应该在哪里存储从LiveData观察到的数据以检查If
语句?我应该将其存储在Activity
中吗?这是个好主意吗? 最佳答案
只需使用myViewModel.liveData.value
即可获取值。
不仅。观察时,当值更改时会收到通知。没有什么可以阻止您检查该值。 LiveData只是一个数据持有者。
关于android - 如何在Activity的另一种方法中使用LiveData值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/64277925/