我正在使用MVVM体系结构,并且很难弄清楚从LiveData中观察到的值存储在哪里,这仅需要在相同onActivityResult()Activity或其他方法中的if语句中使用。
假设我有这种方法,可以观察viewModelActivity中的实时数据。

fun subscribeObservers() {
    myViewModel.liveData.observe(viewLifeCycleOwner, Observer { myLiveDataString ->
        setTextField(myLiveDataString)
    });
}
我想使用从LiveData中观察到的特定值,即onActivityResultActivity
假设这样
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/

10-11 19:23