3.2.2 完全掌握在 Kotlin 中实现 RecyclerView

本文详述如何在 Kotlin 中实现 RecyclerView 的 Adapter,包括数据类创建、ViewHolder 设计、适配器简化以及点击事件的处理,展示了 Kotlin 语言在 Android UI 编程中的优势。
摘要由CSDN通过智能技术生成

点此进入:从零快速构建APP系列目录导图
点此进入:UI编程系列目录导图
点此进入:四大组件系列目录导图
点此进入:数据网络和线程系列目录导图
如果你对RecyclerView还没有完全了解,可参看我的这一篇:

3.2.1 一篇文章完全掌握 RecycleView 的六大用法

想要知道 Kotlin 是如何简化我们的人生的个很有趣的方式就是去创造一个 RecyclerView 适配器,在上一篇中,我们学会了 RecyclerView 的使用,这一篇我们用 Kotlin 实现 RecyclerView 中用到的 Adapter,你会发现整个工程代码会用如此简单并且易懂的方式组织在一起。

一、Kotlin 中的 RecyclerView Adapter

我们会创造一个包含一个图片和一个标题的条目适配器,之所以做的如此简单,是因为我们不必花过多的精力在修改单个的条目上面,所以我们现在需要创建一个简单的数据类条目,然后创建一个适配器,最后把它放到 RecyclerView。
- 数据类条目

data class Item(val id: Long, val title: String, val url: String)

在我们这样定义过这个数据类之后,他就自己创建了它的构造器,并且他此时此刻已经有了自己的一些不可变的属性以及一些有用的函数实现,比如:equals 或 hashCode。

  • 适配器 Adapter
    适配器的结构如下,它会自己创建一些必须的方法:
class MyAdapter : RecyclerView.Adapter() {

    override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ViewHolder {
    }

    override fun onBindViewHolder(holder: ViewHolder?, position: Int) {
    }

    override fun getItemCount(): Int {
    }

    class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView)
}

这样我们就创建了一个由原始 ViewHolder 扩展而来的 ViewHolder 类,因为适配器需要原始抽象类的实现。另外,有些元素被标注为 nullable。这是因为如果库没有适当的 @NonNull 标注的话 Kotlin 就没有方法知道 null 类型是否是允许的,所以这就要让我们来决定了。如果我们通过默认方式创建方法了,它就会认为其值是 nullable,但是进一步研究支持库,我们就知道哪些值是为 null,所以我们在这里就能够删除它,于是代码可以简化成这样:

class MyAdapter : RecyclerView.Adapter() {

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
    }

    override fun getItemCount(): Int {
    }

    class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView)
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值