Я хочу передать данные модели в другое действие, используя Parceler через намерение Bundle. Моя проблема заключается в том, как передать данные из Presenter в слой «Вид» для отображения в другом мероприятии с использованием MVP-архитектуры в android?Передача пакета в андроид с помощью MVP
ответ
Это, безусловно, возможно. Предположив, что ваша деятельность реализует свой вид интерфейс, который должен был бы метод в интерфейсе, например:
void startNextActivity(MyData data);
Тогда в деятельности:
@Override
void startNextActivity(MyData data) {
// create bundle
// send intent
}
И в Выступающий:
view().startNextActivity(myData);
Однако я не рекомендую вам это делать
Я считаю, что довольно много моделей classic шаблонов Android следует использовать экономно при выполнении MVP. Сюда относятся такие вещи, как onActivityResult
&, передающие данные между действиями/фрагментами с использованием Bundle
.
Чтобы все было как можно более развязано и чисто, действия должны избегать общения с другими видами деятельности. Презентаторы не должны разговаривать с другими докладчиками и т. Д. Если вам нужно получить доступ к данным из одного действия в другом мероприятии, отправьте его в модель для сохранения. Затем Следующее мероприятие будет отправлено этими данными его докладчиком, который получит его из модели.
Следующая диаграмма дает лучший обзор:
Вместо прохождения детали как часть комплекта при запуске следующей операции они сохраняются в модели для следующей операции загрузки.