可以通过将字符串资源的值传递给Bundle对象的putString()方法,然后将Bundle对象作为参数传递给NavController.navigate()方法来解决该问题。
例如,我们假设我们有一个包含字符串资源的目标Fragment,其中包含一个参数:
现在我们想要从另一个Fragment使用导航组件将字符串资源的值作为参数传递给目标Fragment,我们可以这样做:
val argValue = getString(R.string.my_string)
val bundle = Bundle().apply {
putString("myArg", argValue)
}
findNavController().navigate(R.id.myFragment, bundle)
在目标Fragment中,我们可以使用NavArgs注释和支持的库来轻松地访问该参数的值:
class MyFragment : Fragment() {
private val args: MyFragmentArgs by navArgs()
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val myArgValue = args.myArg
// Use myArgValue as needed
}
}
上一篇:Android导航组件导航到子图