Android开发之自建通用Adapter-彻底实现视图和数

Android开发之自建通用Adapter-彻底实现视图和数

编码文章call10242025-03-25 10:40:5611A+A-

在安卓开发里Adapter(适配器)的分量不小,从图中就能看到他是listview和数据集的分离,能把获取数据和显示数据分离开,实现解耦。前面的文章有讲Adapter,但是是侧重AndroidAnnotations的框架的简单demo,在这篇里要把之前的Adapter进行优化,减少重复代码,简洁程序,提高健壮性和可维护性。

做法主要是提取2个基类,把共通的工作放到基类里做,数据类型用泛型规范。

1、MyBaseAdapter.java

Adapter的基类,继承BaseAdapter,在实际开发中,由于界面要求很多样化所以一般都用最基础的BaseAdapter,它的自定义性更高。数据集在Adapter基类里定义好,类型是泛型的集合。拥有get和set方法,set方法里重新加数据后要做notifyDataSetChanged通知。getView方法里做了优化,convertView实例为空时才去实例化,当然实例化要通过抽象方法交给子类去实现。这就是最基本的框架,比较通用。

2、ItemView.java

BookItemView的基类,继承自LinearLayout,主要作用就是留出init方法供Adapter的getView里用,写个框子,具体实现交给子类,还有把数据Data的实例放到里基类里,不用每个子类里都再取赋值给全局Data。

3、BookItemView.java

ItemView的子类,泛型是BookInfo类型,那么_data变量也是BookInfo类型,就可以在init里用_data取值,显示了。

4、BooksAdapter.java

MyBaseAdapter的子类,泛型是BookInfo类型,需要实现里面的getItemView方法,返回ItemView。实现当时是根据子ItemView去build了。

以上四步便完成了共通的提取,以后再有Adapter只需写2个简单的子类就可以了。示例中本身很小,看不出优点,但是随着功能的扩大,界面的增多,好处就立马体现出来了,不论在前期的写代码开发,还是后期的维护升级,都是很好的。

目前本码农是这么做得,这是我一点点实践出来的,在此分享给大家。如果您有更好的办法,可以关注本公号(码农随笔),和我交流。

如果觉得这篇文章帮助到了你请赞一下或者分享给有需要的人,您的评价是我前进的方向。欢迎加关注,内容的话,可能是技术,可能是思想,可能是工作感悟,只是希望把自己的认识传播出去,从而寻找些同频的人,共同学习交流,做码农一个人太孤单。。。

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4