Так что я боролся с этой проблемой в течение дня или двух, и я не могу найти способ сделать это. Я создал нижнюю навигационную операцию, и моя цель - из класса main_activity изменить текст TextView, который находится во фрагменте. Это панель навигации, настроенная в основном упражнении:
// Setting up the navigation bar
BottomNavigationView navView = findViewById(R.id.nav_view);
AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(
R.id.navigation_home, R.id.navigation_my_library, R.id.navigation_help)
.build();
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
//NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
NavigationUI.setupWithNavController(navView, navController);
, а в основном классе занятий я пытаюсь запустить это в потоке:
Fragment frag = getSupportFragmentManager().findFragmentById(R.id.navigation_my_library);
((TextView) frag.getView().findViewById(R.id.device_info)).setText(last_recv_msg);
I'm не очень знакомы с фрагментами и с тем, как работает панель навигации. Что бы ни настраивал Android Studio, когда вы щелкаете, чтобы создать новое действие, это то, что у меня есть. Я думал, что решение будет простым, но я пробовал разные вещи часами и ничего. Проблема в том, что frag имеет значение null.
Попытка вызвать виртуальный метод 'android .view.View androidx.fragment.app.Fragment.getView ()' on ссылка на пустой объект
Все, что я могу попробовать, проверить, отладить ... все, что полезно.