> 本文在Android下数据库的操作应用(三)代码的基础上对listview的用法做一个综合的演示。从以下几个方面说明:
> listview的优化
> 采用打气筒的方式创建view
> 通知数据适配器刷新数据展示
【1】listview的优化。listview因为有回收机制,只在屏幕上展示一定数量的item,当一个视图进入回收站后,新出现在屏幕里的视图会利用历史缓存对象,所以即使数据量十分庞大,也是没有问题的。listview的优化是通过convertView实现的。即如果convertView为空时,即没有回收的对象,那么可以新建对象。如果已经有了缓存对象,就可以复用回收的视图对象,以减少对系统内存的开销。
<span style="color: rgb(51, 0, 51); white-space: pre;"> </span><span style="color:#330033;">@Override
public View getView(int position, View convertView, ViewGroup parent) {
</span><span style="color:#ff0000;"><strong>TextView tv = null;
if (convertView == null) {
tv = new TextView(MainActivity.this);
System.out.println("缓存view不存在,new TextView " + position);
} else {
tv = (TextView) convertView;
System.out.println("缓存view存在,复用回收的TextView " + position);
}</strong></span><span style="color:#330033;">
tv.setText(students.get(position).toString());
return tv;
}</span>
【2】采用打气筒方式创建view对象,在代码中实现布局是非常麻烦的。所以采用打气筒的方式创建view对象。在layout中新建xml文件item:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android