@AlexandrMa

Как передавать ArrayList между фрагментами?

Приложение при старте загружает данные в ArrayList внутри первого открывающегося фрагмента MainFragment.

Активность одна MainActivity и три фрагмента MainFragment, CategoryFragment, ProductFragment.

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

В голову пришли только две мысли.
1) Передавать список в виде аргументов, между фрагментами.
2) Создать статичный объект в MainActivity и из фрагментов с ним работать.

Как такое правильнее реализовать?
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
@402d
начинал с бейсика на УКНЦ в 1988
Сделай сиглетон. Если для работы нужен context, то инициализируй через статический метод в классе Application.
Ну а вместо Map используй Mutable или просто LiveData.

Можешь даже класс реализуещий это назвать MyModel :)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@My1Name
Как передавать ArrayList между фрагментами?

Обычно. Пока страница не построена, один объект используется во всех фрагментах.

И самое главное, чтобы этот список можно было модифицировать и он, в обновленной версии, был доступен при смене фрагмента

Фрагменты меняются только при перезагрузке страницы. Они компилируются и вы не можете менять данные после того, как страница уже на стороне клиента. Иначе нужно использовать JavaScript и/или ajax.

чтобы этот список можно было модифицировать

Создайте карту Map<key,ArrayList<?>> action; и храните в ней все изменения до логического завершения. Если у вас ProductFragment, значит по условию "payment" или пока пользователь online.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы