本文是介绍 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 的内容。
据美国国土安全部(DHS)近日透露,加入“Hack DHS”漏洞赏金项目(bug bounty program)的赏金猎人已经在国土安全部的外部系统中发现了122个安全漏洞,其中27个被评估为严重漏洞。 据悉,国土安全部已向450多名经审查的安全研究人员和道德黑客发放了总计125,600美元的奖金...
Vice 报道称,在最近一次行动中,乌克兰安全局(SBU)声称抓获了一名在乌境内为俄军提供通信服务的黑客。在当天上午 10 点发布的推文和电报消息中,SBU 分享了本次行动的诸多细节。尽管尚未得到另一独立消息源的证实,但我们已经看到了面部打码的黑客、以及所谓的通信系统照片。 电报帖子指出,黑客...
以美国为首的“五眼”网络安全部门,刚刚向其盟友(包括英国、加拿大、澳大利亚和新西兰)发出了关键网络基础设施的维护警告。美国家安全局(NSA)给出的理由是 —— 受俄罗斯支持的黑客组织,或对乌克兰境内外的组织构成更大的风险 —— 因而建议各组织对相关网络威胁保持高度警惕,并遵循联合咨询中提当过的缓解...
作为慧与(HPE)的一家网络设备制造子公司,Aruba Networks 于早些时候发生了数据泄露事件。这家企业技术巨头在一份声明中称,未经授权者利用一把私钥,访问了存储于 Aruba Central 云端的客户数据。尽管未详细说明黑客是如何获取到私钥的,但 HPE 确认它可被用于访问存储客户数据的...
Hackernews 编译,转载请注明出处: 网络攻击的数量和复杂程度日益增加,自然而然地促使许多公司使用更多的网络安全技术。我们知道加强威胁检测能力对于保护是必要的,但是他们也导致了几个意外后果。“越多并不总是越好”的格言非常适合这种情况。 网络安全公司 Cynet 即将举行的一...
据报道,日前,微软、英伟达等科技公司遭到一系列黑客攻击,而网络安全人员在调查中,把目标锁定在了英国英格兰牛津一位16岁少年。四名网络安全专家目前正代表微软等被攻击公司展开调查,对名为“Lapsus$”的黑客组织进行调查,专家们判断,上述16岁少年是这个黑客组织的主谋。 这个黑客组织过去进行了多次高调...