Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用Safeargs组件通过BottomNavigationView传递参数_Android_Kotlin_Android Jetpack_Android Jetpack Navigation_Android Safe Args - Fatal编程技术网

Android 使用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

我试图在我的Android应用程序中与BottomNavigationView一起使用Navigation和SafeArgs组件,但我无法通过BottomNavigationView传递参数

这就是我的情况:

  • HomeActivity:托管所有片段并将用户id传递给所有 碎片
    • FragmentA:检索用户id并执行某些操作
    • 片段B:作为片段A
    • 片段C:作为片段A
在我的HomeActivity中,我设置了导航组件以在片段之间切换:

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
(或者只是默认值)

您找到什么了吗?我在片段中也得到了空值。