1.ArrayAdapter
适配器的作用是数据和视图之间的转换
ArrayList<E> data=new ArrayList<E>();
new ArrayAdapter<E>(MainActivity.this,android.R.layout.simple_list_item_1,data);
它的三个参数:
MainActivity.this:上下文,当前的activity
android.R.layout.simple_list_item_1:android sdk内置布局,一个textciew,数组中的每一条数据都将显示在这个textciew中
data:显示的数组数据,listview根据这三个参数,将data中的每一条数据,读出一条,显示到第二个参数对应的布局中
通过泛型指定要适配的数据类型,在构造函数中把要适配的数据传入即可。
2.ArrayAdapter中的getView()方法
listView中的每一个item的显示都需要Adapter调用一次getView()方法。
public abstract View getView (int position, View convertView, ViewGroup parent)
它的三个参数:
position:当前位置
convertView:旧视图(用于将之前加载好的布局进行缓存)
parent:父视图
3.inflate()方法
加载布局管理器,将xml布局转换为view对象并返回
inflate(int resource,ViewGroup root,boolean attachToRoot)
它的三个参数:
resource:listview子项布局的id
root:加载布局的root
attachToRoot:若为true,这个子项布局会被解析并加载在root下面,
若为false,这个子项布局依照root去解析xml并返回view,但是不会被加载到root
attachToRoot:为false,让layout属性失效,不为这个view添加父布局。
4.用ViewHolder对空间的实例进行缓存
ViewHolder是自己新建的一个内部类
若convertView为null,创建一个ViewHolder对象,将控件存到ViewHolder中,再用setTag()将ViewHolder存到view中。
若convertView不为null,调用view的getTag()把viewHolder取出,viewHolder中存有控件。
5.listview制作简易表格的简单例子<