Android 使用Safeargs组件通过BottomNavigationView传递参数
我试图在我的Android应用程序中与BottomNavigationView一起使用Navigation和SafeArgs组件,但我无法通过BottomNavigationView传递参数 这就是我的情况:Android 使用Safeargs组件通过BottomNavigationView传递参数,android,kotlin,android-jetpack,android-jetpack-navigation,android-safe-args,Android,Kotlin,Android Jetpack,Android Jetpack Navigation,Android Safe Args,我试图在我的Android应用程序中与BottomNavigationView一起使用Navigation和SafeArgs组件,但我无法通过BottomNavigationView传递参数 这就是我的情况: HomeActivity:托管所有片段并将用户id传递给所有 碎片 FragmentA:检索用户id并执行某些操作 片段B:作为片段A 片段C:作为片段A 在我的HomeActivity中,我设置了导航组件以在片段之间切换: uid = "hello" navController
- HomeActivity:托管所有片段并将用户id传递给所有
碎片
- FragmentA:检索用户id并执行某些操作
- 片段B:作为片段A
- 片段C:作为片段A
uid = "hello"
navController = Navigation.findNavController(this, R.id.nav_host_fragment)
bottom_nav?.let {
NavigationUI.setupWithNavController(it, navController)
}
并通过以下方式传递用户id:
navController.addOnDestinationChangedListener { _, destination, arguments ->
when(destination.id) {
R.id.navigation_storyboard -> {
val argument = NavArgument.Builder().setDefaultValue(uid).build()
destination.addArgument("uid", argument)
}
}
}
在FragmentA内部,我尝试使用
FragmentAArgs.fromBundle(arguments!!).uid
和NavArg()的委托属性,
获取数据,但是我得到了null
(或者只是默认值)您找到什么了吗?我在片段中也得到了空值。