在Android导航组件中,在片段之间传递参数可以使用Bundle来实现。下面是一个示例代码:
首先,在源片段中,创建一个Bundle并将参数放入其中:
val bundle = Bundle().apply {
putString("key", "value")
}
// 使用Bundle将参数传递给目标片段
findNavController().navigate(R.id.action_sourceFragment_to_targetFragment, bundle)
然后,在目标片段中,通过arguments属性获取传递的参数:
val value = arguments?.getString("key")
需要注意的是,如果目标片段在导航图中使用了argument属性,则不需要手动获取参数。导航组件会自动将参数传递给目标片段。
另外,还可以使用安全参数来传递参数。首先,在导航图中定义参数:
然后,在源片段中使用Safe Args插件来导航到目标片段并传递参数:
val action = SourceFragmentDirections.actionSourceFragmentToTargetFragment("value")
findNavController().navigate(action)
最后,在目标片段中,可以直接获取安全参数:
val value = arguments?.let { TargetFragmentArgs.fromBundle(it).key }
通过以上方法,你可以在Android导航组件中在片段之间传递值(参数)。