listview优化主要是优化界面的重复绘制,这里不贴图了,贴了没啥感觉,啥也看不到,就贴下adapter中的getView()方法,和ViewHolder类的代码,主要也就在这了,很简单的一段代码
@Override
public View getView(int index, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View view = convertView;
ViewHolder holder;
if(view == null){
view = LayoutInflater.from(context).inflate(R.layout.list_item, null);
holder = new ViewHolder();
holder.tv = (TextView)view.findViewById(R.id.text);
view.setTag(holder);
}else{
holder = (ViewHolder) view.getTag();
}
holder.tv.setText(list.get(index));
return view;
}
static class ViewHolder{
TextView tv;
}
ViewHolder是静态的,为后面帮助加载,同时保证了内存中只有一个ViewHolder,节省内存的开销。