我们使用实时数据 mvvm 获取了 RecyclerView 的事件时间点击。所有数据都来自使用改造的 API。 实时数据填充 RecyclerView。现在列出数据集点击监听器打开其他屏幕那些详细信息屏幕。任何帮助我设置点击监听器。 我有六个类(class)
- 我的请求适配器
- 我的请求模型
- 我的请求模型数据
- 主视图模型
- 请求库
- 我的请求 fragment
最佳答案
1) 在 ViewModel 中,有一个 MutableLiveData 变量来保存所选项目。
MutableLiveData<Item> selectedItem = new MutableLiveData<>();
2) 在您的 UI 中观察 LiveData 变量,并将 Intent 代码写入下一个带有 item in extras 的屏幕。
mViewModel.selectedItem.observe(this, new Observer<Item>() {
@Override
public void onChanged(Item item) {
if (item != null) {
Intent intent = new Intent(ThisActivity, NextActivity);
intent.putExtra(Const.KEY_INTENT_DATA_ITEM, item);
startActivity(intent);
}
}
});
3) 将 ViewModel 对象传递给您的适配器。
4) 将点击监听器添加到您的 View ,您将从 onBindViewHolder 获得项目位置。使用它,我们可以获得所选项目。
5) 在 Item Click 上,将项目设置为 ViewModel 的 MutableLiveData 变量。
mViewModel.selectedItem.setValue(item);
6) 当我们在 UI 中观察该变量时,onChanged()
将被调用,它将在您的下一个屏幕中显示它的数据。
关于android - 用 livedata 获取 RecyclerView 的 ClickListener 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58184530/