我有两个片段 A 和 B。我正在尝试导航到 B,然后返回 A。在执行此操作时,我在 A 中有一些表单数据(一堆文本字段),我想在导航返回时保留这些数据再到 B。当我navigateUp()
从 B 时,A 中的数据被保留,但我无法将数据从 B 传递到 A。如果我在导航回 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 中。