本文是介绍 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 的内容。
据Techspot报道,乌克兰国家安全局(SBU)宣布,自俄罗斯入侵该国以来,该机构已发现并关闭了5个运营10万个社交媒体账户的机器人农场,这些账户传播与入侵有关的假新闻。 SBU在一份新闻稿中写道,这些农场位于包括哈尔科夫、切尔卡瑟、捷尔诺皮尔和外喀尔巴阡在内的地区,被用于 “大规模信息破坏”,...
反病毒软件主要根据各种病毒特征进行预防、隔离等操作,但有时候也会出现误杀的情况。UserBenchmark 就是最新案例。根据 VirusTotal,这个流行的免费基准测试工具已被近二十个网站标记为恶意软件。 UserBenchmark 是一个轻量级的免费软件,可以测试你的 CPU、GPU、内...
在英国,购买比特币最简单、最匿名的方式之一是前往选定的商店,使用比特币自动取款机,你只需存入现金,然后将比特币发送到你的比特币钱包。英国金融行为监管局(FCA)现在正命令经营这些自动取款机的公司关闭它们,因为它们没有实施旨在防止洗钱的KYC措施。 要在英国运营,加密货币自动取款机应在FCA注册,并...
4月6日消息,安全公司Kryptowire警告说,三星的各种设备都容易受到重大安全漏洞的影响,该漏洞允许黑客接管设备。Kryptowire制作移动应用安全测试(MAST),这是一种扫描漏洞以及安全和隐私问题的工具。 据该公司称,它发现了一个漏洞(CVE-2022-22292),该漏洞可能允许黑客采...
今年夏季 REvil 团伙发起了将近 3 周的大规模恶意软件攻击,美国联邦调查局(FBI)秘密扣留了密钥。该密钥本可以解密多达 1500 个网络上的数据和计算机,包括医院、学校和企业运营的网络。 援引华盛顿邮报报道,联邦调查局渗透了 REvil 团伙的服务器以获得该密钥。不过在和其他机构讨论之后,...
两个月前,领英(LinkedIn)曾被曝出有 5 亿用户的个人资料被黑客挂在论坛上叫卖。近日,又有一位名叫“TomLiner”的卖家在兜售宣称包含了 7 亿条记录的文件。这位“GOD User”还在 RaidForums 论坛上挂出了一份百万级的样本,以证实其确实已于 6 月 22 日持有 7 亿条...