繁体   English   中英

使用 livedata 获取 RecyclerView 的 ClickListener 时间

[英]Take ClickListener time of RecyclerView with livedata

我们使用实时数据 mvvm 获取了 RecyclerView 的事件时间点击。 所有数据均来自使用 retrofit 的 API。 实时数据填写在 RecyclerView 中。 现在列出数据集点击侦听器打开其他屏幕那些详细屏幕。任何帮助我设置点击侦听器。 我有六节课

  • 我的请求适配器
  • 我的请求模型
  • 我的请求模型数据
  • 主视图模型
  • 请求存储库
  • 我的请求片段

1) 在 ViewModel 中,有一个 MutableLiveData 变量来保存所选项目。

MutableLiveData<Item> selectedItem = new MutableLiveData<>();

2) 观察 UI 中的 LiveData 变量,并将意图代码写入下一个屏幕,其中包含附加项目。

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 object 传递给您的适配器。

4) 将点击监听器添加到您的视图中,从 onBindViewHolder 您将获得项目 position。 使用它,我们可以获得选定的项目。

5) 在单击项目时,将项目设置为 ViewModel 的 MutableLiveData 变量。

mViewModel.selectedItem.setValue(item);

6) 当我们在 UI 中观察该变量时,将调用onChanged()并将其数据显示在您的下一个屏幕中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM