使用MVP在android中传递bundle意图

时间:2017-01-31 07:36:48

标签: android android-intent bundle mvp parceler

我想使用Parceler通过Bundle intent将Model数据传递给另一个活动。我的问题是如何将数据从Presenter传递到View层,以便在Android中使用MVP架构显示另一个活动?

1 个答案:

答案 0 :(得分:11)

这当然是可能的。假设您的Activity实现了您的View界面,您在界面中有一个方法,如:

void startNextActivity(MyData data);

然后在活动中:

@Override
void startNextActivity(MyData data) {

    // create bundle
    // send intent
}

在Presenter中:

view().startNextActivity(myData);

但我不建议您这样做

我认为在做MVP时应该谨慎使用相当多的经典 Android模式。这包括onActivityResult和&使用Bundle在活动/片段之间传递数据。

尽可能保持分离和清洁活动应避免与其他活动交谈,演示者不应与其他演示者交谈等。如果您需要从另一个活动中的一个活动访问数据,请将其发送到模型要坚持下去。然后,下一个活动将由其Presenter发送此数据,该Presenter将从模型中获取该数据。

下图提供了更好的概述:

MVP Diagram

在开始下一个Activity时,不是将详细信息作为Bundle的一部分传递,而是将它们保存在模型中,以便加载下一个Activity。