Android 在 Interactors MVP 之间传递数据

Android Passing data between Interactors MVP

开发者好,我很难弄清楚我应该如何正确地做些什么,这样我才不会违反 MVP 原则,所以我遇到了以下情况。

显示对象列表的视图,当单击特定对象时,我的 ViewHolder 告诉 Presenter 有关单击事件的信息。

我想要的是,当单击该对象时,我想启动一个新的 Activity,它将显示被单击的特定对象。

选项 1.

将点击对象的id传递给新启动的activity的Interactor(不知道该怎么办),这里会调用一个新的api调用并将 return 基于给定 ID 的结果。

选项 2.

另一方面,如果我不想进行新的 api 调用,只想将 Object 传递给新 [=43= 的 Iterator ].

(进行新的 api 调用或传递对象哪个对性能更好?)

如果我的任何选项看起来都不错,那么我应该如何正确实施它们?

如果不是,那么另一种方法是什么?

您最好的选择是使用新的蓝图,其中包括 LiveData 形式的视图模型,并且视图模型中有用于在视图之间共享模型的特定机制。基本上模型是用视图 ID 的键保存的,但是如果你有一个视图,然后有许多片段,它们都可以访问它。

从技术上讲,您可以控制密钥:

final UserModel viewModel = ViewModelProviders.of(this).get(UserModel.class);

我喜欢它的地方在于它解决了困扰 MVC 的范围问题:要么使用单例,要么到处传递数据。