使用导航组件开关在kotlin中的片段,将数据从frgament B传递到A



我有两个片段,片段A和b。有一个名为city的变量,它设置了用户的默认城市,然后在片段b中,用户可以更改城市。

我想使用从frag B中选择的新城市值来获取更改后的城市的数据。

但当我尝试时,我会得到新城市的值,但用户配置文件中的默认城市值一直都在设置中。

在片段A中,在导航到目的片段之前,可以将FragmentResultListener设置如下:

setFragmentResultListener(RESULT_KEY) { _, bundle ->
    val selectedCity = bundle[BUNDLE_DATA_KEY] as String
    // Do any stuff with the selected city
}
findNavController().navigate(ACTION)

然后在目标片段中,在导航到片段A之前,以这种方式设置捆绑包数据:

val selectedCity = "New York"
setFragmentResult(RESULT_KEY, bundleOf(BUNDLE_DATA_KEY to selectedCity))
findNavController().navigateUp()

最新更新