0

我正在尝试在使用 NavController 时将数据从目标 Fragment 的 FloatingActionButton 的 OnClickListener 传递到起始 Fragment。FloatingActionButton 位于托管所有片段的活动中。

目前,我可以像这样从 FloatingActionButton 的 OnClickListener 返回上一个 Fragment:

                Bundle bundle = new Bundle();
                bundle.putSerializable(BUNDLE_KEY_SELECTED, selected);
                NavController navController = NavHostFragment.findNavController(FragmentSelectSongs.this);
                navController.popBackStack();

不过,我想将该 Bundle 发送到起始片段。此处的文档,将数据传递到起始目的地,例如设置新图形并添加捆绑包。不过,这会破坏后台堆栈。即使我这样做:

                NavController navController = NavHostFragment.findNavController(FragmentSelectSongs.this);
                navController.setGraph(navController.getGraph(), bundle);
                navController.popBackStack();

这让我回到了开始片段。我该如何处理?

我是否应该从目标开始执行一个动作并传递另一个值,然后两次弹出回栈?

4

1 回答 1

1

你试过这个吗?

navController.navigate(R.id.fragment_id_to_send_bundle, bundle);
于 2020-09-27T15:47:06.620 回答