我有一个有两个片段的活动。任一片段都位于活动中的容器上。活动还具有带有设置按钮的工具栏。我应该通过单击设置按钮使用导航传递设置片段,但我有问题,因为findNavController(R.id.home_nav).navigate(R.id.action_second_fragment_to_settings_fragment)
如果我们转到设置屏幕并且第二个片段处于活动状态,则可以工作,但是从第一个活动片段开始就会崩溃。 我需要做什么来解决这个问题?我只在导航组件中使用了在片段之间传递的操作。可能有针对此任务的有用解决方案
如果你navController
在MainActivity中,使用此代码可以访问navController
并将数据发送到片段。
加载新片段:
val bundle = Bundle()
bundle.putString("id", id)
(activity as MainActivity).navController.navigate(R.id.orderDetailFragment, bundle)
对于在片段中获取onViewCreated
中的数据:
arguments?.let {
if (it.getSerializable("id") != null) {
val id = it.getString("id")
}
}
我希望它有用