在Android导航组件中,可以使用Bundle对象来在片段之间传递数据。以下是一个示例解决方法:
首先,在源片段中,使用Navigation组件的NavController对象来设置要传递的数据,然后将其添加到Bundle对象中。示例代码如下:
val bundle = Bundle()
bundle.putString("key", "value")
val navController = findNavController()
navController.currentDestination?.id?.let {
navController.navigate(it, bundle)
}
接下来,在目标片段中,使用Navigation组件的Safe Args来接收传递的数据。首先,在项目的build.gradle文件中,添加Safe Args插件的依赖:
apply plugin: "androidx.navigation.safeargs"
然后,在目标片段的XML文件中,使用
标签来定义要接收的参数。示例代码如下:
...
最后,在目标片段的代码中,可以直接通过Safe Args的自动生成类来获取传递的数据。示例代码如下:
val args: TargetFragmentArgs by navArgs()
val value = args.key
通过以上步骤,你可以在Android导航组件中成功传递数据并在目标片段中接收数据。