android - 如何将数据从 recyclerview 中的单击项目传递到 viewmodel 并打开新活动?
问题描述
正如我所写,我正在寻找解决该问题的方法。如何MVVM
在 Android 中正确传递文本和 id 单击项目ViewModel
并打开新活动?
新活动是项目的详细信息。因此,当我单击项目时,我想显示带有来自单击项目的数据的新活动,并且我需要项目 ID 来编辑项目中的对象。
解决方案
使用 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
推荐阅读
- python - 如何在 Python 中使用 psycopg2 将空字符写入 bytea 列
- apache - 带有和不带斜杠的 URL 重写
- couchbase - 如何在沙发库中选择由其他 id 字段过滤的文档?
- r - 如何删除 R 中多个文件中的某些特定列?
- ios - 找不到 ccavenue 'openssl/pem.h' 文件
- vue.js - 无法将 axios 响应值分配给变量 - vue.js
- testing - 邮递员 - 在收集预请求脚本运行之前为单个请求设置变量
- angular - Angular6中的路由
- javascript - 如何使用变量更改 jquery 数据表语言
- javascript - 数组不是用 sort() 排序的;我摆脱了来自 json.parsed Javascript 的 json 的 Get 请求