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