Добавление нижней навигации к фрагменту — navHostFragment возвращает значение nullAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Добавление нижней навигации к фрагменту — navHostFragment возвращает значение null

Сообщение Anonymous »

Я пытаюсь добавить нижнюю навигацию к фрагменту, но это не работает, поскольку во время выполнения я получаю следующую ошибку

Код: Выделить всё

FATAL EXCEPTION: main Process: com.otemainc.m_kliniki, PID: 17222                                                                                                    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.otemainc.m_kliniki/com.otemainc.m_kliniki.controller.MainActivity}: android.view.InflateException: Binary XML file line #15: Binary XML file line #19: Error inflating class fragment                                                                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2993)                                                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3128)                                                                                                        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)                                                                                                     at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)                                                                                                     at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)                                                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1888)                                                                                                     at android.os.Handler.dispatchMessage(Handler.java:106)                                                                                                     at android.os.Looper.loop(Looper.java:193)                                                                                                      at android.app.ActivityThread.main(ActivityThread.java:6801)                                                                                                        at java.lang.reflect.Method.invoke(Native Method)                                                                                                       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:518)                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)                                                                                                   Caused by: android.view.InflateException: Binary XML file line #15: Binary XML file line #19: Error inflating class fragment                                                                                                    Caused by: android.view.InflateException: Binary XML file line #19: Error inflating class fragment                                                                                                    Caused by: java.lang.NullPointerException                                                                                                       at java.util.Objects.requireNonNull(Objects.java:203)                                                                                                       at com.otemainc.m_kliniki.controller.fragments.HomeFragment.onCreateView(HomeFragment.java:34)                                                                                                      at androidx.fragment.app.Fragment.performCreateView(Fragment.java:3114)                                                                                     
По сути, я добавил нижнюю навигацию и представление контейнера фрагментов, которое будет действовать как хост-фрагмент следующим образом: Я также создал навигационный граф и назвал идентификатор каждого элемента фрагмента навигации тем же именем, что и в пунктах меню, следующим образом:
//Фрагмент навигации

Код: Выделить всё

      








//The menu










Наконец, в файле HomeFragment.java я добавил код для инициализации каждого элемента и настройки контроллера навигации следующим образом:

Код: Выделить всё

 public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment_home, container, false);
BottomNavigationView navigationView = root.findViewById(R.id.bottom_navigation_view);
// Passing each menu ID as a set of Ids because each
// menu should be considered as top level destinations.
AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(
R.id.userDashboardFragment, R.id.calculatorFragment, R.id.reservationFragment, R.id.walletFragment)
.build();
AppCompatActivity appCompat = (AppCompatActivity) requireActivity();
NavHostFragment navHostFragment = (NavHostFragment) appCompat.getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment_activity_nav);
NavController navController = Objects.requireNonNull(navHostFragment).getNavController();
NavigationUI.setupActionBarWithNavController((AppCompatActivity) this.requireActivity(), navController, appBarConfiguration);
NavigationUI.setupWithNavController(navigationView, navController);
return root;
}
Код аварийно завершает работу при запуске, несмотря на отсутствие каких-либо ошибок в IDE, и когда я устанавливаю точки отладки, я понимаю, что проблема связана с нулевым значением navHostFragment. Что мне может не хватать? Есть идеи, как успешно установить для navhostfragment значение, указанное в фрагменте_home.xml?

Подробнее здесь: https://stackoverflow.com/questions/791 ... turns-null
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»