2017-01-31 5 views
3

Я хочу передать данные модели в другое действие, используя Parceler через намерение Bundle. Моя проблема заключается в том, как передать данные из Presenter в слой «Вид» для отображения в другом мероприятии с использованием MVP-архитектуры в android?Передача пакета в андроид с помощью MVP

ответ

9

Это, безусловно, возможно. Предположив, что ваша деятельность реализует свой вид интерфейс, который должен был бы метод в интерфейсе, например:

void startNextActivity(MyData data); 

Тогда в деятельности:

@Override 
void startNextActivity(MyData data) { 

    // create bundle 
    // send intent 
} 

И в Выступающий:

view().startNextActivity(myData); 

Однако я не рекомендую вам это делать

Я считаю, что довольно много моделей classic шаблонов Android следует использовать экономно при выполнении MVP. Сюда относятся такие вещи, как onActivityResult &, передающие данные между действиями/фрагментами с использованием Bundle.

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

Следующая диаграмма дает лучший обзор:

MVP Diagram

Вместо прохождения детали как часть комплекта при запуске следующей операции они сохраняются в модели для следующей операции загрузки.