Чтобы повторно использовать фрагменты, вы должны создавать каждый из них как полностью автономный модульный компонент, который определяет свой собственный макет и поведение. Как только вы определили эти фрагменты многократного использования, можно связать их с activity и соединить их с логикой приложения, чтобы осуществить полную компоновку пользовательского интерфейса.

Чаще всего вы хотите связать фрагменты между собой, например, чтобы изменить содержание, основанное на событиях пользователя. Вся связь между фрагментами выполняется через соответствующую activity . Два фрагменты никогда не должны общаться напрямую.

 

Определение интерфейса


Чтобы разрешить фрагменту общаться с его activity , можно определить интерфейс в классе фрагмента и реализовать его в activity . Фрагмент захватывает реализацию интерфейса во время его метода жизненного цикла onAttach(), а затем может вызывать методы интерфейса, чтобы общаться с activity .

Вот пример общения между фрагментом и activity :

 

Теперь фрагмент может доставлять сообщения в activity вызывая onArticleSelected() метод (или другие методы интерфейса), используя mCallback экземпляр OnHeadlineSelectedListenerинтерфейса.

Например, следующий метод фрагмента вызывается, когда пользователь нажимает на элемент списка. Фрагмент использует интерфейс обратного вызова для доставки событий в родительскую activity .

 

Реализация интерфейса


Для получения обратных вызовов из фрагмента, activity в которой фрагмент размещен должна реализовать интерфейс, определенный в классе фрагмента.

Например, следующая activity реализует интерфейс из приведенного выше примера.

 

Доставка сообщения во фрагмент


activity , содержащая фрагмент, может доставлять сообщения во фрагменты, захвативFragment экземпляр с помощью findFragmentById(), затем напрямую вызывать общедоступные методы фрагмента.

Например, представьте, что activity показанная выше может содержать другой фрагмент, который используется для отображения элемента, указанного в данных возвращаемых методом обратного вызова выше. В этом случае activity может передать информацию, полученную в методе обратного вызова, в другой фрагмент, который будет отображать элемент:

 

 

Связь с другими фрагментами в android-приложении обновлено: Ноябрь 23, 2015 автором: admin

  1. как этим же способом передать и принять объект?

  2. Доброго времени суток,

    не могли бы привести пример как мог бы выглядеть метод articleFrag.updateArticleView(position); при передаче сообщения во фрагмент? Заранее спасибо.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*
*
Website