我正在尝试在使用 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();
这让我回到了开始片段。我该如何处理?
我是否应该从目标开始执行一个动作并传递另一个值,然后两次弹出回栈?