ListView 是一个控件,一个在垂直滚动的列表中显示条目的一个控件,这些条目的内容来自于一个ListAdapter (适配器)。
说明:(结合练习代码一起看)
ListAdapter是一个接口,若要获得适配器adapter,需要创建一个类去实现ListAdapter,而Java中有提供这种实现ListView 的类,可直接创建个类来继承.在公司ListAdapter的BasaAdapter实现类.(ListAdapte--rAPI详接)
1.布局添加Listview
2.找到listview----------与其他控件一样,通过 findViewById() 获取控制权.
3.创建一个Adapter适配器继承BaseAdapter,封装4个方法,其中getcount,getview必须封装
getcount:告诉listview要显示的条目数
getview:告诉listview每个条目显示的内容。
4.创建Adapter的一个对象,设置给listview。
listview.setAdapter(ListAdapter adapter);
listview优化
adapter中getview方法会传进来一个convertView,convertView是指曾经使用过的view对象,可以被重复使用,但是在使用前需要判断是否为空,不为空直接复用,并作为getview方法的返回对象。
TextView view = null;
if(convertView != null){//判断converView是否为空,不为空重新使用
view = (TextView) convertView;
}else{
view = new TextView(mContext);//创建一个textView对象
}
return view;
解析:这里System打印的map对象,来辨别TextView对象的唯一性.利用了map的键值对(key:哈希值),以及对象在内存中哈希值的唯一性.而Map可以对key相同的键值对进行合并.