如何解决是否可以在片段中调用ViewModel的方法并观察活动中的MutableLiveData?
我有一个片段。当我单击一个按钮时,我想调用数据库以获取一些数据。我将这些数据放入可观察的实时数据中。该数据显示在“活动”上。我可以观察活动中的数据吗?所以我想在片段中调用ViewModel的方法,并观察活动中的MutableLiveData。有可能吗?
解决方法
是的,这是绝对可能的。您需要做的就是在活动和片段之间共享视图模型实例。
如何?在片段中使用ViewModelProvider()
,而不是将this
作为所有者,您需要从片段中传递activity
实例。而且,如果您的片段已经在同一活动中,那么它将为您提供活动的模型实例,而不是创建新的实例。
Fragment的实际语法:
ViewModelProvider(requireActivity())[MyViewModel::class.java]
使用viewModel-ktx
依赖性(如注释中的link之一)很容易。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。