recyclerview item点击事件无效 recyclerview实现双击

本文是关于RecyclerView的介绍性文章系列的第三篇。如果您已经对创建RecyclerView有所了解,请继续阅读本文。如果你不熟悉,建议你先看这个系列的第一篇文章。使用RecyclerView显示列表数据时,可能需要响应列表元素的click事件。响应处理包括:打开包含更多数据的页面、显示t...

本文是关于RecyclerView的介绍性文章系列的第三篇。如果您已经对创建RecyclerView有所了解,请继续阅读本文。如果你不熟悉,建议你先看这个系列的第一篇文章。

使用RecyclerView显示列表数据时,可能需要响应列表元素的click事件。响应处理包括:打开包含更多数据的页面、显示toast、删除元素等等。虽然相关的响应事件数不胜数,但都需要通过onClick()来实现。

定义点击动作

在创建侦听器之前,在Activity类中添加一个函数来处理单击后的响应操作。

<!-- Copyright 2019 Google LLC. SPDX-License-Identifier: Apache-2.0 -->private fun adapterOnClick(flower: Flower) { val intent = Intent(this, FlowerDetailActivity()::class.java) intent.putExtra(FLOWER_ID, flower.id) this.startActivity(intent)}

接下来,修改适配器的构造函数以传入onClick()函数。

<!-- Copyright 2019 Google LLC. SPDX-License-Identifier: Apache-2.0 -->class FlowersAdapter(private val onClick: (Flower) -> Unit) : ListAdapter<Flower, RecyclerView.ViewHolder>(FlowerDiffCallback())

在Activity类中,新创建的click事件函数在适配器初始化时被传入。

<!-- Copyright 2019 Google LLC. SPDX-License-Identifier: Apache-2.0 -->val flowersAdapter = FlowersAdapter { flower -> adapterOnClick(flower)}

添加onClickHandler()

既然已经定义了响应处理,您可以将它与适配器的视图持有者关联起来。

修改ViewHolder,将onClick()作为参数传入。

<!-- Copyright 2019 Google LLC. SPDX-License-Identifier: Apache-2.0 -->class FlowerViewHolder(itemView: View, val onClick: (Flower) -> Unit) : RecyclerView.ViewHolder(itemView)

在初始化的代码中,调用itemView的setOnClickListener{}。

<!-- Copyright 2019 Google LLC. SPDX-License-Identifier: Apache-2.0 --> init { itemView.setOnClickListener { currentFlower?.let { onClick(it) } }}

搞定了。现在,您的RecyclerView可以响应点击事件。

编程快乐!

下一步

请参考包含onClick()的完整示例。

感谢您阅读RecyclerView系列的第三篇文章。敬请关注未来更多关于RecyclerView的内容。

本文来自穷水尽更词穷投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/483522.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 03-31
下一篇 03-31

相关推荐

  • opt文件用什么打开 opt无效文件规格ug

    Linux软件安装目录Linux的软件安装目录很精致。了解这一点有利于系统管理。/usr:系统级目录,可以理解为C:/Windows/,/usr/lib可以理解为C:/Windows/System32。/usr/local:用户级程序目录,可以理解为C:/programfiles/。默认情况下,用户编译的软件将安装在该目录中。/opt:用

    2023-07-29 03:36:01
    755 0
  • win11驱动器无效解决方法

    3 最后,打开一键装机软件,进行为win11系统安装即可,操作可参考大白菜u盘装系统教程 上面的方法,就是安装win11系统找不到驱动器的解决方法了我们在安装系统的时候,需要将系统安装在特定的分区中,但是如果检测不到驱动。方法二1如果win11系统无法自动为你更新兼容的驱动2

    2023-07-18 12:05:01
    606 0
  • 魔兽改键精灵没法用 魔兽自定义改键无效原因

    因为我的粗心,把“隐藏界面”的默认快捷键“ALT+Z”赋给了其他动作,导致按下“ALT+Z ”它不能隐藏接口。最后在快捷键设置里找了半天才找到正确的功能,重新分配了新的键位。具体功能在下面的红框里:其他用户可能会遇到导致ALT+Z无法生效的情况,就是Nvidia有一个软件叫

    2023-07-09 10:11:01
    875 0
  • 打印机句柄无效处理方法

    5重新安装打印机驱动也可能是你系统盘硬盘空间不够所至,如果你用的是XP自带的照片打印向导,可能会出现此类提示,打数码相片每张基本要占5M左右的系统盘空间,如果一次打印很多的话可能会出现此类问题,建议你清理一下C盘。如果打印服务关了,进行控制面板管理工具服务,开启

    2023-07-06 19:07:02
    209 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信