android - 如何在Activity的另一个方法中使用LiveData值?

标签 android kotlin android-activity mvvm android-livedata

我正在使用MVVM架构,并且很难弄清楚在哪里存储从LiveData观察到的值,该值只需要在onActivityResult中的if语句中使用() 相同的 Activity 或任何其他方法。

假设,我有这个方法可以观察 ActivityviewModel 的实时数据。

fun subscribeObservers() {
    myViewModel.liveData.observe(viewLifeCycleOwner, Observer { myLiveDataString ->
        setTextField(myLiveDataString)
    });
}

我想使用从同一 ActivityonActivityResult 中的 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/

相关文章:

android - 从 Samsung Grand :Android 检索对话

android - 如何重启onCreate函数

android - 从 Android 应用程序以编程方式下载/缓存 osmdroid map

java - 如何在RecyclerView中选择多个项目并将它们放入列表中

Android 应用显示白屏,新安装除外

java - 接口(interface)泛型重载

android - 电话响铃时调用的Activity叫什么

mysql - 用户 Activity 提要的表结构 - 关系与否?

java - 库 com.google.android.gms :play-services-basement is being requested by various other libraries at [[15. 0.1,15.0.1]],但解析为 16.1.0

Android 适合图像到 ImageView