【问题标题】:How to pass data from one activity to another using MVP pattern?如何使用 MVP 模式将数据从一个活动传递到另一个活动?
【发布时间】:2019-04-06 11:23:47
【问题描述】:

我在MainActivity 中有一个Recyclerview,其中的数据来自 API。我想在点击一个项目后打开一个DetailsActivity

现在在 MVP 模式中,我应该如何将数据对象从 MainActivity 传递到 DetailsActivity?我在Mainactivity 中使用了 Interactor 来处理数据部分。

【问题讨论】:

  • 这取决于你想对你的数据做什么。您可以将其写入某种存储库,然后在附加视图时让您的 Presenter 检索它。

标签: android design-patterns android-mvp


【解决方案1】:

我认为您应该在您的adapter 中使用callback 并将数据从您的adapter 传递到

您的第一个activity 然后将数据从第一个activity 传递到第二个activityParcelable

你可以关注这个使用Parcelable

[https://developer.android.com/reference/android/os/Parcelable

【讨论】:

    【解决方案2】:

    假设DetailsActivity 应该显示具有id 的“详细信息”,您可以通过Bundleid 传递给DetailsActivity,并通过id 获取“详细信息”。

    如果假设是错误的,那么您可以制作“详细信息”Parcelable 并将它们通过Bundle 传递给DetailsActivity

    通过使用任何一种方法,可以保证通过Bundle 传递的数据将“幸存”进程死亡,以防您的应用程序进程在后台被系统杀死。即,当导航回应用程序时,Bundle 将“重新发送”到DetailsActivity

    我可以通过Intent直接将数据传递给DetailActivity,但是这里的MVP方法是怎样的呢?

    MVP 中,视图 (V) 通常是特定于平台的,因此(在 Android 中)可以使用 @ 操作987654334@.

    也就是说我可以直接发送数据到DetailActivity

    是的,可能如下。 DetailsActivityPresenter (P) 获得通过 Intent 传递的 id 并“要求”Interactor 获取详细信息>Repository(或您使用的其他一些抽象)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-31
      • 2011-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多