首页 > 解决方案 > Viewmodel 附加到片段未按预期工作

问题描述

我是这个 Android 架构的新手,我正在尝试了解 ViewModel 的使用。

目前我有一个活动,其 xml 中嵌入了一个片段。该片段只有一个编辑文本,我想在手机旋转时保留其内容。我已经正确地实现了 Viewmodel、livedata 和观察者(我想),并将 ViewModel 附加到片段上。

问题来了,当我旋转手机时,片段被重新创建并且信息消失了。但是,如果我将 ViewModel 附加到该应用程序的活动,则该应用程序按预期工作。

因此,在了解了一些背景信息之后,问题是,如果在重新创建/销毁片段时清除了 Viewmodel 对象,为什么我要将 ViewModel 附加到片段?

谢谢

附言。这是我将 Viewmodel 附加到活动的方式,这样它可以按预期工作

Fragment

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
...
final MuestrasViewModelFactory mvmFactory = new MuestrasViewModelFactory(new String[]{"hello","world","again"});
final MuestrasViewModel mvm = new ViewModelProvider(requireActivity(), mvFactory).get(MuestrasViewModel.class);
... //here comes the observers

标签: androidfragmentviewmodel

解决方案


推荐阅读