【问题标题】:MVP in Android - How to Exchange data/events between Presenters?Android 中的 MVP - 如何在演示者之间交换数据/事件?
【发布时间】:2018-07-11 09:49:54
【问题描述】:

我想知道您如何在模型-视图-演示者架构中的演示者之间交换数据或/和事件。

我有这个视图的活动(视图)和演示者,以及这个视图的对话框(视图)和演示者。当Activity显示Dialog时,Dialog的Presenter被注入到Dialog中。我在对话框(输入文本)中做某事并提交。此文本设置在演示者中,并且...完全正确。如何将这些数据从 Dialog 的 Presenter 传递给 Activity 的 Presenter?

我使用 Bus Event (Otto form Square) 来发送数据,但如果是好的做法呢?

【问题讨论】:

  • 当您完成对话框中的任何工作后,只需使用接口将其传递给 Activity。
  • 但对话框不知道应该发送什么。对话框是转储。对话框只知道确定被点击并通知演示者。
  • 您必须将文本传输到对话演示者。我们没有对文本执行任何工作,那么为什么要传递它呢?而是直接将其传递给活动,或者如果您可以使用EventBusLocalBroadcast,您可以这样做。在 mvp 中,虽然演示者之间使用接口直接交互被认为是一种不好的做法,因为它会增加耦合。
  • 好的,但如果不是对话框而是其他组件?即fragment 和他的主持人?
  • 他们也一样。您将在组件内使用接口的实例并在您的活动中实现它。

标签: java android communication mvp pass-data


【解决方案1】:

解决方案很简单——就是“MVP”中的“M”。使用您的模型在演示者之间同步您的数据。如果您需要通知数据更改,有很多可能的解决方案:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-31
    • 2019-09-27
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多