如何使用 Android 导航将数据传递到前一个片段?

How can I pass data to the previous fragment using Android Navigation?

我的应用程序以 NewAdFragment 开头,在这个片段中,有一个按钮允许用户选择类别,当用户单击该按钮时,我将把他导航到 ChooserFragment将类别列表作为参数传递,此片段中有 RecyclerView 并显示类别。

我想要什么?我想要当用户从 RecyclerView 中选择一个项目,然后它必须返回到 NewAdFragment 特定数据。

我可以通过很多方法解决这个问题,但也许导航组件库中已经存在一种方法。

最好的方法是什么?

尝试实现下面提到的代码块here:

片段 A

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
val navController = findNavController();
// We use a String here, but any type that can be put in a Bundle is supported
navController.currentBackStackEntry?.savedStateHandle?.getLiveData<String>("key")?.observe(
    viewLifecycleOwner) { result ->
    // Do something with the result.
  }
}

片段 B

navController.previousBackStackEntry?.savedStateHandle?.set("key", result)
navController.popBackStack()

你也可以查看this