Android在Interactors MVP

时间:2018-04-05 14:51:17

标签: android mvp

美好的一天开发者,我无法弄清楚我应该如何以及如何正确地做到这一点,这样我就不会违反MVP原则,所以我有以下情况。

显示对象列表的视图,当点击特定对象时,ViewHolder告诉Presenter点击事件。

我想要的是,当点击对象时,我想开始一个新的Activity,它将显示被点击的特定对象。

选项1。

将点击的对象的id传递给Interactor(我应该怎么做,我不知道)新启动的活动,其中将调用新的api调用并返回基于给定id的结果。

选项2。

另一方面,如果我不想进行新的api通话,并希望将Object简单地传递给Iterator新活动。

(对于进行新的api调用或传递对象的性能有什么好处?)

如果我的任何选项似乎都不错,那么我应该如何正确实现它们呢?

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

1 个答案:

答案 0 :(得分:1)

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

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

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

我喜欢这个是它解决了困扰MVC的范围问题:要么使用单身人士,要么在所有地方传递数据。