我想通过 Bundle 意图使用 Parceler 将模型数据传递到另一个活动中。我的问题是如何将数据从 Presenter 传递到 View 层以在 android 中使用 MVP 架构的另一个活动中显示?
这当然是可能的。假设您的 Activity 实现了 View 接口,您在接口中将有一个方法,如下所示:
void startNextActivity(MyData data);
然后在活动中:
@Override
void startNextActivity(MyData data) {
// create bundle
// send intent
}
在演示者中:
view().startNextActivity(myData);
但我不建议你这样做
我认为有不少classic在进行 MVP 时应谨慎使用 Android 模式。这包括诸如此类的事情onActivityResult
& 使用以下方法在 Activity/Fragment 之间传递数据Bundle
.
为了使事情尽可能地解耦和干净,活动应避免与其他活动对话,演示者不应与其他演示者对话,等等。如果您需要在另一个活动中访问一个活动的数据,请将其发送到模型进行持久化。然后,下一个 Activity 将由其 Presenter 发送此数据,Presenter 将从模型中获取该数据。
下图给出了更好的概述:
在启动下一个 Activity 时,它们不会将详细信息作为 Bundle 的一部分传递,而是保留在模型中以供下一个 Activity 加载。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)