BaseAdapter需要实现4个方法
- getCount:适配器中的数据集的个数
- getItemId:获取指定的id
- getItem:获取数据集中指定索引的Item
- getView获取每一个Item的显示内容,是核心方法
对Adapter中的getView方法进行优化
getView有三个传入变量:
- int position //指定的哪一个Item内容
- View convertView //如果是已经回收的View,该参数会返回回收的View
- ViewGroup parent
getView方法的优化方法
- 在BaseAdapter类中创建一个ViewHolder类,ViewHolder类包含ListView布局的控件,用ViewHolder来存放ListView布局控件,避免重复的findViewById操作
- 判断convertView参数是否为空:
- 如果为空:说明该View没有被回收过
- 创建ViewHolder
- 实例化convertView对象,用Inflate方法将布局文件转化为View对象并对其实例化
- 调用convertView的setTag方法让convertView与viewHolder进行绑定
- 如果不为空
- convertView的getTag方法,取出viewHolder对象
- 如果为空:说明该View没有被回收过