Я переношу данные из basefragment в homefragment и внутри basefragment из нижней навигации для перемещения фрагментов в androidx.fragment.app.FragmentContainerView
Используем и передаем данные без проблем, но при перемещении между фрагментами в androidx.fragment. app.FragmentContainerView
Я получаю сообщение об ошибке
Ошибка
Process: com.example.onestore, PID: 8461
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context androidx.fragment.app.FragmentHostCallback.getContext()' on a null object reference
at androidx.fragment.app.FragmentManager$3.instantiate(FragmentManager.java:507)
at androidx.navigation.fragment.FragmentNavigator.createFragmentTransaction(FragmentNavigator.kt:250)
at androidx.navigation.fragment.FragmentNavigator.navigate(FragmentNavigator.kt:185)
at androidx.navigation.fragment.FragmentNavigator.navigate(FragmentNavigator.kt:164)
at androidx.navigation.NavController.navigateInternal(NavController.kt:260)
at androidx.navigation.NavController.navigate(NavController.kt:1719)
at androidx.navigation.NavController.navigate(NavController.kt:1545)
at androidx.navigation.NavController.navigate(NavController.kt:1472)
at androidx.navigation.ui.NavigationUI.onNavDestinationSelected(NavigationUI.kt:92) at com.example.onestore.Fragment.BaseFragment.onViewCreated$lambda$0(BaseFragment.kt:52)
at com.example.onestore.Fragment.BaseFragment.$r8$lambda$AhYzRgHZPuF05HZ30iBPXzgh_yw(Unknown Source:0)
at com.example.onestore.Fragment.BaseFragment$$ExternalSyntheticLambda0.onNavigationItemSelected(Unknown Source:2)
at com.google.android.material.navigation.NavigationBarView$1.onMenuItemSelected(NavigationBarView.java:291)
at androidx.appcompat.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:836)
at androidx.appcompat.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:159)
at androidx.appcompat.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:987)
at com.google.android.material.navigation.NavigationBarMenuView$1.onClick(NavigationBarMenuView.java:139)
at android.view.View.performClick(View.java:7448)
at android.view.View.performClickInternal(View.java:7425)
at android.view.View.access$3600(View.java:810)
at android.view.View$PerformClick.run(View.java:28305)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
baseFragment
val MytData = Data
val fragment = HomeFragment.newInstance(MyData)
getChildFragmentManager()
.beginTransaction()
.replace(R.id.fragmentContainerView2, fragment)
.commit()
val navHomeFragment = getChildFragmentManager()
.findFragmentById(R.id.fragmentContainerView2) as NavHostFragment
val navController = navHomeFragment.navController
binding.bottomNavigationView.setupWithNavController(navController)
binding.bottomNavigationView.setOnItemSelectedListener { item ->
NavigationUI.onNavDestinationSelected(item, navController)
return@setOnItemSelectedListener false
homeFragment
companion object {
fun newInstance(yourData: Data) = HomeFragment().apply {
arguments = Bundle().apply { putParcelable("Key", yourData) }
}
}
val data : Data? = arguments?.getParcelable("Key")
if (data != null) {
insertData(data)
}
fragmnet_base.xml
nav_grap
меню
Подробнее здесь: https://stackoverflow.com/questions/781 ... agment-app
Попытка вызвать виртуальный метод android.content.Context androidx.fragment.app.FragmentHostCallback.getContext() по ссы ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение