是否有可能在android中向上导航时传递数据

问题描述 投票:0回答:1

我有两个片段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中保留一些表单数据(一堆文本字段),同时向后导航并...

android-fragments kotlin android-navigation android-bundle android-safe-args
1个回答
0
投票

如果使用的是MVVM体系结构,请参见此链接:https://developer.android.com/topic/libraries/architecture/viewmodel#sharing

© www.soinside.com 2019 - 2024. All rights reserved.