使用导航从 Activity 传递到片段
Pass to fragment using Navigation from Activity
我有一个 activity 有两个片段。任一片段都位于 activity 中的容器中。 activity 也有带设置按钮的工具栏。我应该通过单击设置按钮使用导航传递设置片段,但我遇到了问题,因为 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")
}
}
希望有用
我有一个 activity 有两个片段。任一片段都位于 activity 中的容器中。 activity 也有带设置按钮的工具栏。我应该通过单击设置按钮使用导航传递设置片段,但我遇到了问题,因为 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")
}
}
希望有用