Как мне вызывать функции во фрагменте из другого?

#java #android #android-fragments

#java #Android #android-фрагменты

Вопрос:

Я помещаю два фрагмента в действие. Что я хочу сделать, так это скрыть представление, скажем, из фрагмента A, когда я нажимаю кнопку во фрагменте B. У меня есть функция скрытия во фрагменте A, но как мне вызвать ее во фрагменте B? Я пытался:

 ((FragmentA)getActivity().getFragmentManager().findFragmentById(R.id.fragment_a)).hideLivePreview();
  

но это дает мне исключение нулевого указателя…пожалуйста, помогите

Комментарии:

1. вы должны взаимодействовать с активностью из фрагмента b, которая запустит функцию во фрагменте a. developer.android.com/guide/topics/fundamentals / … , проверьте эту ссылку.

2. @Yashwanth Kumar спасибо, чувак.. я уверен, что это то, что я должен делать, но я продолжаю получать исключения с нулевым указателем при вызове функции фрагмента из activity

Ответ №1:

Вы не хотите делать это вообще. Фрагмент A и фрагмент B не должны напрямую взаимодействовать, поскольку фрагмент A и фрагмент B не могут быть одновременно на экране все время. Они могут располагаться рядом на большом экране, но отображаться с помощью отдельных действий на экранах меньшего размера. ИМХО, действия должны опосредовать все коммуникации между фрагментами. Если у вас есть два фрагмента, которые слишком тесно связаны для этого, они не должны быть отдельными фрагментами в первую очередь.

При всем сказанном вы получаете NullPointerException , потому что в activity нет фрагмента с таким идентификатором.

Комментарии:

1. Спасибо! Тогда я попытаюсь выполнить in в activity .. но для исключения NullPointerException я проверил действие перед вызовом функции, поэтому в конкретном действии должен быть такой фрагмент. Не уверен, что я что-то неправильно понял…