如何解决如何在Activity的另一种方法中使用LiveData值?
我正在使用 MVVM 体系结构,并且很难弄清楚从 LiveData 中观察到的值存储在哪里,这只需要在{{1}中的if语句中使用{} onActivityResult()
或其他任何方法。
假设,我有这种方法可以观察Activity
中viewModel
的实时数据。
Activity
我想使用从同一fun subscribeObservers() {
myViewModel.liveData.observe(viewLifeCycleOwner,Observer { myLiveDataString ->
setTextField(myLiveDataString)
});
}
的{{1}}中的 LiveData 中观察到的特定值。
假设这样
onActivityResult
所以我的问题是我应该在哪里存储从 LiveData 观察到的数据以检查Activity
语句?我是否应该将其存储在override fun onActivityResult(requestCode: Int,resultCode: Int,data: Intent?) {
if (requestCode == RC) {
if (myLiveDataString == "ERROR") {
showErrorDialogToUser()
}
}
}
中?这是个好主意吗?
解决方法
只需使用myViewModel.liveData.value
即可获取值。
不是仅通过观察者方法来检索liveData值吗?
不仅如此。观察时,当值更改时会收到通知。没有什么可以阻止您检查该值。 LiveData只是一个数据持有人。
,如果您只是想在同一LiveData
中使用Activity
值,则在private String liveDataReturnValue
类中创建一个Activity
并分配返回的{{1} } LiveData
Observer
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。