我有两个片段A和B。我试图导航至B,然后返回至A。在执行此操作时,我希望在A中保留一些表单数据(一堆文本字段),同时来回导航到B。当我从B进行navigateUp()
时,保留了A中的数据,但无法将数据从B传递到A。如果我在使用Bundle导航回A时,则无法使用onSaveInstanceState()保存数据。我在片段A中使用了以下代码来保存表单数据(从https://developer.android.com/guide/components/activities/activity-lifecycle#instance-state中获得):
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) if(savedInstanceState!=null){ with(savedInstanceState) { inputName.setText(getString("Name")) } } else{ //I just leave it since the text fields will be empty anyways } } override fun onSaveInstanceState(outState: Bundle) { outState.run { putString("Name",inputName.text.toString()) } super.onSaveInstanceState(outState) }
但是当我离开时,不会调用onSaveInstaceState(由于在调用onCreate时,此操作最终会以null结束,并且流程进入if语句)。我要做的就是从A导航到B时将数据保存在A中。
我有两个片段A和B。我试图导航至B,然后返回至A。在执行此操作时,我希望在A中保留一些表单数据(一堆文本字段),同时向后导航并...
如果使用的是MVVM体系结构,请参见此链接:https://developer.android.com/topic/libraries/architecture/viewmodel#sharing