深入:打造最简单的ListView---Adapter

作者: 君华_Joshua | 来源:发表于2017-07-22 10:34 被阅读124次

ListView通常Adapter

排版不佳建议点击查看原文


虽然Google在Android5.0推出新控件RecyclerView,但是ListView依然是手机系统中使用最广泛的一种组件,它以垂直列表的形式显示所以列表项,相信你早已熟知其基本用法。

通常实现ListView需要实现setAdapter方法,通常做法是新建一个ListViewAdapter继承BaseAdapter重新其中数个方法:

实际开发中由于会用到不止一个ListView,不断重复以上步奏使得代码臃肿,实现起来非常费劲。

Adapter初步封装


我们创建了一个Activity添加了ListView控件并设置了MainAdapter.我们对MainAdapter进行封装,首先创建Adapter基类MyBaseAdapter:

由于数据源类型我们在基类并不知道具体类型,所以定义泛型,除了getView方法,其余方法实现方式依旧,这样子类MainAdapter只需要实现构造方法便可完成以上内容,当然我们怎么能够放弃getView的封装:

Adapter再封装


getView通常需要完成:

1.初始化Item内的控件

2.复用convertView

3.更新Item控件

初始化Item内的控件我们使用了getHodler方法拿到了BaseHolder对象,那么BaseHolder从何而来?首先我们创建了BaseHolder类:

BaseHolder完成了初始化Item控件实例、刷新界面的抽象定义以及调用,由于Item数据基类并不知道具体类型,所以我们定义为泛型,此时我们再创建MainHolder继承BaseHolder实现具体的初始化Item控件实例、刷新界面等逻辑:

MainHolder由于Item数据为String类型所以BaseHolder泛型确定为String类型,重写了BaseHolder的两个方法完成了具体的初始化Item控件实例、刷新界面。

此时我们回到getView方法,将BaseHolder维护的Item布局返回即可。

万事俱备,此时我们只需要继承我们封装好的MyBaseAdapter仅仅只需要实现一个方法:

Adapter打造完成

就完成了ListView的Adapter,遇到再多的ListView我们也无需担心Adapter的繁琐,只需要继承MyBaseAdapter实现getHodler就完成了Adapter的编写。减少代码的耦合度。

欢迎长按下图-识别图中二维码或者扫一扫关注我的公众号:

如果你有不同意见或建议或者有好的技术文章想和大家分享欢迎投稿,可以把你的文章使用附件的形式发送到我的邮箱2908116133@qq.com

谢谢阅读!

相关文章

网友评论

    本文标题:深入:打造最简单的ListView---Adapter

    本文链接:https://www.haomeiwen.com/subject/vkzykxtx.html