BaseAdapter 基础知识
一.BaseAdapter 简介及使用场景
BaseAdapter 是一个抽象类,常用于和 Android 中的一些控件如
ListView ,GridView,ExpandableListview,Spinner 等控件结合来显示数据的一种 控件,在 Android 开发中占有很重要的位置。
二.Adapter 结构图
三.BaseAdapter 的使用步骤
BaseAdapter 是一个抽象类,在使用时
- 首先,定义一个类来继承该类;
- 其次,实现里面对应的抽象方法,同时完成方法体的书写;
- 最后,在相应的 Activity 中使用该适配器。
四.BaseAdapter 中抽象方法介绍
1. 需要重写的方法及作用介绍,如下图所示:
2. getView()方法的介绍
1) 参数介绍:
2) getView()方法的优化处理
第一种优化方式:
通过缓存 convertView,这种利用缓存 contentView 的方式可以判断如果缓 存中不存在 View 才创建 View,如果已经存在可以利用缓存中的 View,提升 了性能
第二种优化:(常用)
-
通过 convertView+ViewHolder 来实现,ViewHolder 就是一
个静态类,使用 ViewHolder 的关键好处是缓存了显示数据
的视图(View),加快了 UI 的响应速度。
-
当我们判断 convertView == null 的时候,如果为空,就会
根据设计好的 List 的 Item 布局(XML),来为 convertView 赋值,并生成一个 viewHolder 来绑定 converView 里面的各 个 View 控件(XML 布局里面的那些控件)。再用 convertView 的 setTag 将 viewHolder 设置到 Tag 中,以便 系统第二次绘制 ListView 时从 Tag 中取出。(看下面代码 中)
-
如果 convertView 不为空的时候,就会直接用 convertView 的 getTag(),来获得一个 ViewHolder。
常用优化的代码如下: