我刚开始我的第一个Android项目。我的应用程序包含两个与导航控制器连接的片段。
就目前而言,我的第一个片段只有两个EditText。但是,我意识到,当我切换到另一个片段并向后浏览时,输入的文本已被清除。
所以我想知道如何保存日期并在将其切换回原位时将其恢复
我已经尝试按照大多数人的建议将它们保存在 onSaveInstanceState()中,但是,它不起作用。因此,我做了一些测试,结果发现在切换片段时甚至没有调用 onSaveInstanceState()。相反,会调用 onDestroy()和 onPause(),人们不建议保存这些数据
我也尝试过使用ViewModel保存数据,但是当我切换回原始Fragment时,保存到ViewModel中的数据似乎也消失了。
所以我不确定该怎么办?谢谢!
答案 0 :(得分:1)
您应该使用ViewModel,在Fragment.onViewCreated()方法内部通过Activity而不是Fragment创建ViewModel
val myViewModel = ViewModelProvider(activity as ViewModelStoreOwner).get(MyViewModel::class.java)