[英]How to use same instance of ViewModel in activity as well as fragment?
I have created an instance of ViewModel in MainActivity and setup an observer.我在MainActivity中创建了一个 ViewModel 实例并设置了一个观察者。 I want the observed data into one of the fragments of MainActivity's ViewPager.
我希望将观察到的数据放入 MainActivity 的 ViewPager 的片段之一。 How can I get the required LiveData into the fragment .
如何将所需的LiveData放入片段中。
Using AndroidX extension delegate使用 AndroidX 扩展委托
In the MainActivity:在 MainActivity 中:
private val activityViewModel: SomeViewModel by viewModels()
In the Fragement在片段中
private val activityViewModel: SomeViewModel by activityViewModels()
With ViewModelFactory, put the ViewModelFactory intance into closure使用 ViewModelFactory,将 ViewModelFactory 实例关闭
private val activityViewModel: SomeViewModel by viewModels{ viewModelFactory }
private val activityViewModel: SomeViewModel by activityViewModels{ viewModelFactory}
you can use shared ViewModel Shared ViewModel between activity and fragments您可以在活动和片段之间使用共享视图模型共享视图模型
for this you can define an object from activity's viewModel in your fragment with activity as viewModel's owner and apply changes on that's variables.为此,您可以从片段中的活动视图模型中定义 object,活动作为视图模型的所有者,并对其变量应用更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.