RecyclerView.Adapter 中实现 getItemId() 的正确方法

2024-01-14

我有通用类

public abstract class BaseAdapter<T> extends RecyclerView.Adapter {
  private List<T> itemsList = new ArrayList<>();
  //other override methods

  @Override
    public long getItemId(int position) {
        return position;
    }
}

实现 getItemId() 的正确方法是什么?我觉得return position就像许多例子中那样是不正确的。


  1. 创建一个具有返回类型的方法的基接口long eg.

    interface BaseInterface{
        long getId(); 
    }
    
  2. Change

    abstract class BaseAdapter<T> extends RecyclerView.Adapter 
    

    to

    abstract class BaseAdapter<T extends BaseInterface> extends RecyclerView.Adapter {
    

    注:签名改为T extends BaseInterface

  3. Replace

    @Override
    public long getItemId(int position) {
        return position;
    }
    

    with

    @Override
    public long getItemId(int position) {
        return itemsList.get(position).getId();
    }
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RecyclerView.Adapter 中实现 getItemId() 的正确方法 的相关文章

随机推荐

  • 尝试设置 Laravel 4 给出“无法打开流:没有这样的文件或目录”

    尝试在 Mac 上设置 Laravel 4 我已经安装了 Composer 但是当我通过 XAMPP 进入公共文件夹时 我得到以下信息 警告 require Applications XAMPP xamppfiles htdocs lara
  • 在 Python 脚本中使用 FFProbe

    我对 python 相当陌生 这是我的第一个真正的项目 我遇到了障碍 我这里有一个 wmv 文件 我使用 FFprobe 从 wmv 文件中提取持续时间 以秒为单位 当我在 CMD 中运行以下命令时 ffprobe i Video2 wmv
  • 多对多关联。数据不删除

    我有这个模型 Entity Table name candidate XmlRootElement name candidate public class Candidate ManyToMany mappedBy candidates f
  • 同一个构造函数是否可以有不同的行为?

    我正在写一个 SQL 解释器 我需要区分编译时格式错误的表达式和运行时错误 我将给您提供一个应该格式良好但可能在运行时失败的示例 SELECT ColumnName first name AS name FROM TABLE people
  • 将 OpenXML 中的文本支架替换为图像

    下面的代码使用 OpenXML 在 word 文档的末尾插入图像 我需要做的是尝试在文档中找到名为 Image Holder 的项目 并将其替换为我传递的图像 这是将其添加到文档末尾的当前代码 var element new Drawing
  • Salt Generation 和开源软件

    据我了解 生成盐的最佳实践是使用源代码中存储的一些神秘公式 甚至魔术常数 我正在开发一个计划作为开源发布的项目 但问题是源代码带来了生成盐的秘密公式 因此能够在我们的网站上运行彩虹表攻击 我认为很多人在我之前已经考虑过这个问题 我想知道最佳
  • 如何在Android应用程序中创建进度对话框?

    我正在开发应用程序以从互联网接收一些数据 同时接收我想要显示 进度对话框 的数据 我用了 异步任务 在我的应用程序中 问题是如何使用它以及如何显示百分比 如 100 请建议我并给我一些例子 谢谢你 对不起我的英语 要显示进度对话框 您可以使
  • 使用matlab保存函数

    是否可以在函数内使用 Matlab save 命令来存储工作区变量 考虑以下场景 我在 Matlab 工作区中有一堆变量 并且希望 mat 文件中所有以 a 和 b 开头的变量 当然这有效 save test mat a b 但我想要一个可
  • Vuejs:渲染后回调

    我有一个 Bootstrap 弹出窗口 我想将其附加到具有条件渲染的元素 因此 我必须在元素附加到 DOM 后触发 popover 有没有办法触发回调afterv if 语句将元素插入到 DOM 中 在 vuejs 2 中使用它 updat
  • 查找列表中 int 的索引

    有没有办法从列表中获取 int 的索引 寻找类似的东西list1 FindIndex 5 我想在列表中找到 5 的位置 Use the IndexOf 列表的方法 该方法的规范可以在MSDN http msdn microsoft com
  • Polars:在 read_csv 中一次指定所有列的数据类型

    In Polars https www pola rs 如何为中的所有列指定单一数据类型read csv 根据docs https pola rs github io polars py polars html reference api
  • Google 地图 API autocomplete.getPlace() 返回的几何图形不一致

    我在 AngularJS 应用程序中使用 GoogleMaps 自动完成功能 当我调用 autocomplete getPlace 当我尝试使用地方时 有一半的时间它说几何图形为空 一半的时间都有效 似乎无法弄清楚 我唯一的想法是我的代码在
  • 从 MCV2 视图中的模型集合中读取 DataAnnotations

    在我的 MVC2 AdminArea 中 我想为每个域模型创建一个概述表 我正在使用如下所示的 DataAnnotations 作为这些域模型对象的属性 DisplayName MyPropertyName public string Na
  • SQL 中聚合函数的除法行为不符合预期

    我正在尝试在 SQL Server 2008 R2 中做一些交叉表 这部分没问题 但是 如果我尝试获取每个单元格的百分比 我就会遇到问题 这是一个精炼的用例 一项调查 人们给出了他们最喜欢的颜色和最喜欢的水果 我想知道有多少人喜欢给定的水果
  • Strapi database.js / 多个数据库配置

    如果我在 database js 中运行 sqlite 则 Strapi 在本地工作 但如果我运行 postgres 则不行 我在网上发现我可以指定npm run develop使用 sqlite 生产应该使用 postgres 对于参考
  • 我的 iPhone 认为宽度为 980 像素

    我正在尝试创建一组三个很简单媒体查询来处理各种屏幕尺寸 经过一番绞尽脑汁之后 我得出了以下结论 media all and min width 0px and max width 480px styles here media all an
  • 在 WPF 中的标签 MouseHover 上显示按钮

    在我的应用程序中我有一个Startup Window其中包含 提示 信息等 窗口的一部分包含 3Labels左侧还有3个隐藏Buttons在右侧 我想要的是每当用户将鼠标悬停在其中之一上时Labels位于另一侧的按钮Label出现 我知道如
  • 动态添加时 Facebook 社交插件不显示

    我正在将 Facebook 社交插件添加到网页中 当我手动添加时 div class fb comments div 它可以工作 但是 当 javascript 代码添加它时 它不会 有任何想法吗 JS SDK 在初始化时会检查您的文档一次
  • Servlet 应用程序中的 Unicode 字符显示为问号

    最近我基于以下实现了国际化如何国际化 Java Web 应用程序 https stackoverflow com questions 4276061 how to internationalize a java web applicatio
  • RecyclerView.Adapter 中实现 getItemId() 的正确方法

    我有通用类 public abstract class BaseAdapter