У меня есть три фрагмента и одно действие. Когда пользователь запускает и приложение, первый фрагмент с картой и маркерами (F1) на нем отображается в действии. Пользователь нажимает на один из маркеров, второй фрагмент (F2) показывает некоторые другие параметры. Когда пользователь выбирает конкретную опцию в F2, слушатель запускает и передает данные в основную активность. Затем основная активность должна отображать третий фрагмент (F3) и вызывать один из его методов. Теперь, если этот метод вызывается до того, как происходит onViewCreated, он выдает исключение NullPointerException в определенных полях (логически).Использование прослушивателя фрагментов без реализации в родительской активности
Как я могу реализовать способ MainActivity для вызова F3 при возникновении onViewCreated или в момент, когда эти конкретные поля становятся не нулями, без реализации другого интерфейса в MainActivity (будет сложно, потому что у меня уже достаточно интерфейсов, реализованных в нем).
Есть ли какой-либо другой способ достижения этого?
Вы можете вызвать 'фрагмент.isResumed()' из вашей 'Activity' или что-то вроде этого (' isVisible() ', ..) перед вызовом метода' Fragment', если 'false', подождать некоторое время и попробовать еще раз? – yennsarah
@Amy Подождите 'некоторое время'? – Aleksandar
Вы должны вызывать только метод Фрагмента, взаимодействующий с пользовательским интерфейсом, когда он создается - поэтому, если ваш вызов метода получает «критическую по времени», должно быть достаточно маленькое 'wait (100)'. Другая идея, но не уверен, работает ли она: вы можете попробовать установить «флаг» в свой «Фрагмент», установить его значение true при создании пользовательского интерфейса, а в вашем методе - «while (! Flag)» с ' wait' ... – yennsarah