android - 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
解决方案
推荐阅读
- python - Python:如何制作抽象类属性,所有大写命名约定和 linter 警告
- regex - 正则表达式匹配第一个数字和非法字符
- python - VS Code 中的 Python:自动完成 (IntelliSense) 不适用于编辑器选项卡中的对象实例
- android - 从bottomNavigationView导航到片段B时保存片段A的状态
- swift - 在 Swift 中将结构的“类型”作为参数传递?
- python - 在创建可滚动的 boxlayout 时遇到问题,但我遇到了问题
- firebase - Firebase 在尝试启用离线持久性时出错
- java - 想法和命令行java产生具有相同时区的不同日期
- .htaccess - htaccess 仅匹配根目录中的特定文件类型
- excel - 在工作簿之间创建连接时,如何进行忽略前两行的查询