BaseAdapter 基础知识

来源:互联网 发布:淘宝代购需要什么证明 编辑:程序博客网 时间:2024/05/16 14:36

一.BaseAdapter 简介及使用场景
BaseAdapter 是一个抽象类,常用于和 Android 中的一些控件如ListView ,GridView,ExpandableListview,Spinner 等控件结合来显示数据的一种控件,在 Android 开发中占有很重要的位置。


二.Adapter 结构图
这里写图片描述


三.BaseAdapter 的使用步骤
BaseAdapter 是一个抽象类,在使用时首先,定义一个类来继承该类;其次,实现里面对应的抽象方法,同时完成方法体的书写;最后,在相应的Activity 中使用该适配器。


四.BaseAdapter 中抽象方法介绍
1. 需要重写的方法及作用介绍,如下图所示:
这里写图片描述
2. getView()方法的介绍
1) 参数介绍:
这里写图片描述


2) getView()方法的优化处理
第一种优化方式:
通过缓存 convertView,这种利用缓存 contentView 的方式可以判断如果缓存中不存在 View 才创建 View,如果已经存在可以利用缓存中的 View,提升了性能
这里写图片描述


第二种优化:
i. 通过 convertView+ViewHolder 来实现,ViewHolder 就是一个静态类,使用 ViewHolder 的关键好处是缓存了显示数据的视图(View),加快了 UI 的响应速度。
ii. 当我们判断 convertView == null 的时候,如果为空,就会根据设计好的 List 的 Item 布局(XML),来为 convertView赋值,并生成一个 viewHolder 来绑定 converView 里面的各个 View 控件(XML 布局里面的那些控件)。再用convertView 的 setTag 将 viewHolder 设置到 Tag 中,以便系统第二次绘制 ListView 时从 Tag 中取出。(看下面代码中)
iii. 如果 convertView 不为空的时候,就会直接用 convertView的 getTag(),来获得一个 ViewHolder。
常用优化的代码如下:
这里写图片描述