首页 > 解决方案 > 如何将数据从 recyclerview 中的单击项目传递到 viewmodel 并打开新活动?

问题描述

正如我所写,我正在寻找解决该问题的方法。如何MVVM在 Android 中正确传递文本和 id 单击项目ViewModel并打开新活动?

新活动是项目的详细信息。因此,当我单击项目时,我想显示带有来自单击项目的数据的新活动,并且我需要项目 ID 来编辑项目中的对象。

标签: androidandroid-databindingandroid-mvvm

解决方案


使用 RecyclerView.Adapter 填充数据,实现 OnClickListener 到 viewHolder。

在 onClick 方法(重写)中,您可以键入代码以启动新活动,假设您有名为 Test 的模型类和名为 testList 的数组列表。然后:

Intent intent = new Intent(mContext, DetailActivity.class);
intent.putExtra(KEY, testList.get(getAdapterPosition()));
mContext.startActivity(intent);

请注意,getAdapterPosition() 将返回您单击的位置,mContext 是传递给适配器的上下文。

您将需要您的模型类来实现 Parcelable 以允许模型在活动之间传输。 https://developer.android.com/guide/components/activities/parcelables-and-bundles


推荐阅读