本文是介绍 RecyclerView 入门 系列文章 的第三篇。如果您已经对创建 RecyclerView 有了一定的认识,请继续阅读本文。如果尚未熟悉,建议您首先阅读本系列中的 之一篇文章。
当使用 RecyclerView 显示列表数据的时候,您可能需要响应列表元素的点击事件。该响应处理包括: 打开包含更多数据的页面、显示 toast、删除某个元素等等。相关的响应事件虽然数不胜数,但是它们均需要通过 onClick() 来实现。
在创建监听器之前,在 Activity 类中添加一个函数用于处理点击之后的响应操作。
<!--Copyright2019GoogleLLC. SPDX-License-Identifier:Apache-2.0-->
privatefunadapterOnClick(flower:Flower){ valintent=Intent(this,FlowerDetailActivity()::class.java) intent.putExtra(FLOWER_ID,flower.id) this.startActivity(intent) }
接下来,修改 Adapter 的构造函数来传入 onClick() 函数。
<!--Copyright2019GoogleLLC. SPDX-License-Identifier:Apache-2.0-->
classFlowersAdapter(privatevalonClick:(Flower)->Unit): ListAdapter<Flower,RecyclerView.ViewHolder>(FlowerDiffCallback())
在 Activity 类中,在初始化 Adapter 的时候传入刚刚创建的点击事件函数。
<!--Copyright2019GoogleLLC. SPDX-License-Identifier:Apache-2.0-->
valflowersAdapter=FlowersAdapter{flower-> adapterOnClick(flower) }
现在响应处理已经定义好了,可以将它关联到 Adapter 的 ViewHolder 了。
修改 ViewHolder,将 onClick() 作为参数传入。
<!--Copyright2019GoogleLLC. SPDX-License-Identifier:Apache-2.0-->
classFlowerViewHolder(itemView:View,valonClick:(Flower)->Unit): RecyclerView.ViewHolder(itemView)
在初始化的代码中,调用 itemView 的 setOnClickListener{}。
<!--Copyright2019GoogleLLC. SPDX-License-Identifier:Apache-2.0-->
init{ itemView.setOnClickListener{ currentFlower?.let{ onClick(it) } } }
搞定!现在您的 RecyclerView 可以响应点击事件了。
编程快乐!
请查阅包含 onClick() 的 完整示例。
感谢您阅读 RecyclerView 系列 文章的第三篇。请继续关注未来更多关于 RecyclerView 的内容。
如果您想了解更多关于 onClick() 的内容,请参考 官方文档。
www.gj *** g.com
由于自称为 Lapsus$ 的组织泄露了与英伟达黑客攻击相关的数据,被盗的代码签名证书被用于远程访问未受保护的 PC,其他情况下则被用来部署恶意软件。 根据 Techpowerup 的报道,这些证书被用于“开发一种新型恶意软件”,BleepingComputer 将 Cobalt Strike...
BHI是一种影响大多数英特尔和Arm CPU的新型投机执行漏洞,它攻击分支全局历史而不是分支目标预测。不幸的是,这些公司以前对Spectre V2的缓解措施也无法保护BHI的威胁,尽管AMD处理器大多是免疫的。消息传出后,供应商应该很快就会发布安全补丁,而最新得Linux内核已经打了补丁。...
我们已经习惯了来自俄罗斯的大量网络攻击,但在乌克兰被入侵后出现了一个有趣的转变,3月份70%的网络攻击反过来都是针对俄罗斯的。Atlas VPN的研究显示,还有19%的攻击是针对乌克兰的。美国是第三大目标,但国际局势让针对该国的攻击只占总数的5%。 3月5日,随着匿名黑客宣布对俄罗斯进行全面的网络...
隐私和安全成为了 Play Store 的更高优选项。Google 近期封杀第三方通话录音应用之外,还引入了“data safety”(数据安全)部分,要求开发人员提供更多关于他们收集的任何用户数据及其背后目的的信息。现在,Google 公开了 2021 年关于 Play Store 安全的统计数据...
欧盟准备在周五公布一项具有里程碑意义的法律,该法律将迫使大型科技公司更积极地监管其平台的非法内容,这是监管机构遏制大型科技集团权力的最新举措。 据四位知情人士透露,《数字服务法》(DSA)将禁止根据用户的宗教信仰、性别或性取向对用户进行分类和内容定位。DSA是一个立法方案,首次为大型科技公司如何保证...
现在已经打了补丁的Pegasus iPhone攻击是近年来看到的最复杂的攻击之一。在研究了多次成为头条新闻的iMessage安全漏洞后,来自Project Zero的Google研究人员将其描述为“技术上最复杂的漏洞之一”。 他们称,NSO集团的工具在复杂程度上跟民族国家间谍工具不相上下。而NSO...