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