我想通过 Bundle 意图使用 Parceler 将模型数据传递到另一个活动中。我的问题是如何使用 android 中的 MVP 架构将数据从 Presenter 传递到 View 层以显示在另一个活动中?
问问题
4771 次
1 回答
12
这当然是可能的。假设您的 Activity 实现了您的 View 界面,您将在界面中有一个方法,例如:
void startNextActivity(MyData data);
然后在活动中:
@Override
void startNextActivity(MyData data) {
// create bundle
// send intent
}
在演示者中:
view().startNextActivity(myData);
但是我不建议你这样做
我认为在做 MVP 时应该谨慎使用相当多的经典Android 模式。这包括诸如onActivityResult
在活动/片段之间使用Bundle
.
为了使事情尽可能地解耦和干净,活动应避免与其他活动交谈,演示者不应与其他演示者交谈等。如果您需要从另一个活动中的一个活动访问数据,请将其发送到模型以进行持久化。下一个 Activity 将由其 Presenter 发送此数据,该 Presenter 将从模型中获取该数据。
下图提供了更好的概览:
在启动下一个 Activity 时,它们不会将详细信息作为 Bundle 的一部分传递,而是保留在模型中以供下一个 Activity 加载。
于 2017-01-31T20:02:44.080 回答