Это вопрос дизайна, а не технического.
Общий случай: я хочу, чтобы событие пользовательского интерфейса во фрагменте вносило изменения во всю активность.
Конкретный случай: у меня есть два фрагмента, размещенные в одном и том же действии. Когда пользователь нажимает кнопку в одном из этих фрагментов, я хочу, чтобы она была заменена другой.
Однако я не хочу, чтобы мои Фрагменты касались моей деятельности. Возможно, я захочу изменить поведение позже (возможно, на большом экране покажу оба фрагмента вместо замены первого), и я не хочу, чтобы мой код фрагмента имел такую логику.
Что я сделал, так это реализовал класс Listener
в своих фрагментах, который сообщает о событиях обратно в Activity
. Таким образом, если я хочу использовать другой класс Activity
с другим поведением отображения, я могу просто изменить прослушиватель и оставить код Fragment
нетронутым.
Это хороший способ сделать это? Существует ли стандартная передовая практика или лучший шаблон проектирования?