使用 NavController 时如何将数据从目标 Fragment 的 FloatingActionButton 的 OnClickListener 传递到起始 Fragment?
How do you pass data to a start Fragment from a destination Fragment's FloatingActionButton's OnClickListener when using a NavController?
我试图在使用 NavController 时将数据从目标 Fragment 的 FloatingActionButton 的 OnClickListener 传递到起始 Fragment。 FloatingActionButton 位于 Activity 托管所有片段中。
目前,我可以像这样从 FloatingActionButton 的 OnClickListener return 到上一个片段:
Bundle bundle = new Bundle();
bundle.putSerializable(BUNDLE_KEY_SELECTED, selected);
NavController navController = NavHostFragment.findNavController(FragmentSelectSongs.this);
navController.popBackStack();
不过我想将该 Bundle 发送到起始 Fragment。这里的文档 Pass data to the start destination 说要设置一个新图形并添加 Bundle。但这会破坏后台堆栈。即使我这样做:
NavController navController = NavHostFragment.findNavController(FragmentSelectSongs.this);
navController.setGraph(navController.getGraph(), bundle);
navController.popBackStack();
这让我回到了开始片段。我该如何处理?
我是否应该从目的地开始并传递另一个值,然后弹出 backstack 两次?
你试过了吗?
navController.navigate(R.id.fragment_id_to_send_bundle, bundle);
我试图在使用 NavController 时将数据从目标 Fragment 的 FloatingActionButton 的 OnClickListener 传递到起始 Fragment。 FloatingActionButton 位于 Activity 托管所有片段中。
目前,我可以像这样从 FloatingActionButton 的 OnClickListener return 到上一个片段:
Bundle bundle = new Bundle();
bundle.putSerializable(BUNDLE_KEY_SELECTED, selected);
NavController navController = NavHostFragment.findNavController(FragmentSelectSongs.this);
navController.popBackStack();
不过我想将该 Bundle 发送到起始 Fragment。这里的文档 Pass data to the start destination 说要设置一个新图形并添加 Bundle。但这会破坏后台堆栈。即使我这样做:
NavController navController = NavHostFragment.findNavController(FragmentSelectSongs.this);
navController.setGraph(navController.getGraph(), bundle);
navController.popBackStack();
这让我回到了开始片段。我该如何处理?
我是否应该从目的地开始并传递另一个值,然后弹出 backstack 两次?
你试过了吗?
navController.navigate(R.id.fragment_id_to_send_bundle, bundle);