我想使用Parceler通过Bundle intent将Model数据传递给另一个活动。我的问题是如何将数据从Presenter传递到View层,以便在Android中使用MVP架构显示另一个活动?
答案 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将从模型中获取该数据。
下图提供了更好的概述:
在开始下一个Activity时,不是将详细信息作为Bundle的一部分传递,而是将它们保存在模型中,以便加载下一个Activity。