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 的范围问题:要么使用单例,要么到处传递数据。
开发者好,我很难弄清楚我应该如何正确地做些什么,这样我才不会违反 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 的范围问题:要么使用单例,要么到处传递数据。