Страницы

Поиск по вопросам

пятница, 27 декабря 2019 г.

Передача данных между фрагментами через модель в Clean Architecture

#android #архитектура


Подскажите поподробней как реализовать такое? Нужно передать данные, например, какие
EditText или  CheckBox были выбраны на предыдущем фрагменте, чтобы работать с ними
в текущем фрагменте.

Не в чистой архитектуре передавалось через 

Bundle bundle = new Bundle();
bundle.putString("some_key", "some string");
fragment.setArguments(bundle);


Далее вытаскиваем

getArguments().getString("some_key")


Но слышал. что в чистой архитектуре это делается таким способом


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


Хотелось бы в идеале увидеть пример, как это делается. Создавать свой репозиторий,
для того чтобы передать пару строк или объект между фрагментами? Я использую Dagger2
можно ли тупо провайдить

     Model provideModel(){ 
        return new Model();
     }


Сейчас у меня в каждый презентер своя модель попадает. Тогда нужно ее сделать синглтоном?
 Конкретно в моем случае я кликаю на один из элементов RecyclerView и мне нужно передать
значение этого элемента.

В общем пока нет понимания правильности.
    


Ответы

Ответ 1



Локальная модель нужна для передачи результата с экрана на предыдущий либо между двумя фрагментами на экране одновременно. Для запуска нового экрана, параметры запуска передаются в аргументах через бандл как и всегда. То есть схема такая: Во вью происходит клик на элемент в списке -> у презентера вызывается метод onItemClick(item) -> Презентер запускает новый экран, передав ему нужные параметры

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

Отправить комментарий