Android 当在“循环视图”应用程序崩溃中同时选择两项时,如何解决此问题?

Android 当在“循环视图”应用程序崩溃中同时选择两项时,如何解决此问题?,android,android-recyclerview,android-jetpack,Android,Android Recyclerview,Android Jetpack,堆栈跟踪 findNavController(requireActivity(), R.id.nav_host_support).navigate(R.id.action_brandsFragment_to_devicesFragment, bundle); 这是因为在第一次点击时,它切换到DevicesFragment,而在处理第二次点击时,该动作不存在于该图形中 您可以添加此支票: Process: com.unicomg.proserve, PID: 25752 java.la

堆栈跟踪

findNavController(requireActivity(), R.id.nav_host_support).navigate(R.id.action_brandsFragment_to_devicesFragment, bundle);

这是因为在第一次点击时,它切换到
DevicesFragment
,而在处理第二次点击时,该动作不存在于该图形中

您可以添加此支票:

 Process: com.unicomg.proserve, PID: 25752
    java.lang.IllegalArgumentException: navigation destination com.unicomg.proserve:id/action_brandsFragment_to_devicesFragment is unknown to this NavController
        at androidx.navigation.NavController.navigate(NavController.java:789)
        at androidx.navigation.NavController.navigate(NavController.java:730)
        at androidx.navigation.NavController.navigate(NavController.java:716)
        at com.unicomg.proserve.ui.main.fragments.brands.BrandsFragment.lambda$initBrands$4$BrandsFragment(BrandsFragment.java:75)
        at com.unicomg.proserve.ui.main.fragments.brands.-$$Lambda$BrandsFragment$pny4rYwzqdcDuB9NcgZbiyK2Ick.onListFragmentInteraction(Unknown Source:2)
        at com.unicomg.proserve.ui.main.fragments.brands.BrandsAdapter.lambda$onBindViewHolder$0$BrandsAdapter(BrandsAdapter.java:74)
        at com.unicomg.proserve.ui.main.fragments.brands.-$$Lambda$BrandsAdapter$NWl2ZJhVqEGxSaOEOsJQCc9r7Po.onClick(Unknown Source:6)
        at android.view.View.performClick(View.java:6291)
        at android.view.View$PerformClick.run(View.java:24931)
        at android.os.Handler.handleCallback(Handler.java:808)
        at android.os.Handler.dispatchMessage(Handler.java:101)
        at android.os.Looper.loop(Looper.java:166)
        at android.app.ActivityThread.main(ActivityThread.java:7523)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)
或者这个:

if (navController.currentDestination?.id != R.id.devicesFragment) {
    navController.navigate(R.id.action_brandsFragment_to_devicesFragment)
}
如果你想的话,你也可以让它们成为扩展函数

if (navController.currentDestination?.id != R.id.devicesFragment) {
    navController.navigate(R.id.action_brandsFragment_to_devicesFragment)
}
navController.currentDestination?.getAction(R.id.action_brandsFragment_to_devicesFragment)?.let { 
    navController.navigate(R.id.action_brandsFragment_to_devicesFragment)
}