【发布时间】:2019-08-21 07:53:37
【问题描述】:
我有一个以MVVM 构建的应用程序。我在同一个活动中有不同的片段。每个fragment 都有自己的ViewModel,所有数据都从一个REST API 中检索。
在 FragmentA 中,有一个 RecyclerView 列出了 X 类实例。我想在RecyclerView 上设置OnClickListener,并且当在RecyclerView 中单击项目时,我想将相关的X 对象传递给FragmentB。我怎样才能做到这一点?
【问题讨论】:
-
提供您迄今为止尝试过的任何代码。
-
只是提供信息的基本项目,这可能更重要,而不是共享 10 个文件,这会导致读者失去兴趣和时间。不过我可以链接到该项目。
-
使用 java 接口,参见“如何将数据从一个片段传递到另一个片段”的链接。它与 MVVM 架构无关。 Viewmodel 用于保存数据集。如果您在活动中使用了视图模型,那么您可以跳过界面部分。
-
我可以包装 ListAdapter 并从 FragmentA 发送回调作为参数。此回调可以使用 navController() 并将所选项目发送到 FragmentB。我会试试的。
-
解决这个问题最方便的方法是在你的适配器类中使用一个接口。这也是我在我的repos 之一中使用的;)
标签: android android-recyclerview onclicklistener android-mvvm