Как управлять аргументами, переданными действиям android?

89
8

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

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

Что было бы хорошим способом обеспечить, чтобы все аргументы, которые мне нужны, были установлены для каждого фрагмента, каждым действием/фрагментом, который их использует?

Я думал о добавлении статического метода 'build' к фрагментам, которые возвращают экземпляр фрагмента с правильно заполненным набором аргументов, но это не работает, когда данные устанавливаются после asyncTasks.

Может ли кто-нибудь предложить, как я могу управлять потоком данных между моими фрагментами и действиями?

спросил(а) 2020-04-04T00:10:34+03:00 5 месяцев, 4 недели назад
1
Решение
118

Принимая статическую идею 'build' еще на один шаг, вы можете создавать POJO, которые содержат необходимые аргументы для данного фрагмента и добавлять методы, которые могут выполнять преобразования POJO <-> Intent.

Мастер-представление может создавать POJO, заполнять его поля, конвертировать POJO в Intent и передавать намерение фрагментам. Затем фрагменты могли построить свое ПОЖО от намерения.

ответил(а) 2020-04-04T00:24:53.254690+03:00 5 месяцев, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема