android - 用 livedata 获取 RecyclerView 的 ClickListener 时间

标签 android

我们使用实时数据 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/

相关文章:

java - 如何实现基于不同条件的集合过滤

android - 是否可以在没有root权限的情况下读取已单独复制到Android sd卡的数据?

android - 如何访问 list 中声明的​​组件实例(广播接收器)

android - 在Android N上发布编译Vulkan API示例的问题

android - MPAndroid 图表 : "Unable to execute dex" issue

android - 如何制定从我的位置到任何标记的行车路线

android - ActionBarSherlock 中的 PopupMenu 等价物

Android 操作栏微调项目

android - Facebook 三星 S3 权限屏幕

android - 如何在单击单个 ImageButton 时更改多个 ImageButtons 的 src