ListView优化:对象重用

Adapter的作用就是ListView界面与数据之间的桥梁,当列表里的每一项显示到页面时,都会调用Adapter的getView方法返回一个View。

public View getView(int position, View convertView, ViewGroup parent) {
  ViewHolder holder;
if (convertView == null) {
   convertView = mInflater.inflate(R.layout.list_item_icon_text, null);
   holder = new ViewHolder();
   holder.text = (TextView) convertView.findViewById(R.id.text);
   holder.icon = (ImageView) convertView.findViewById(R.id.icon);
   convertView.setTag(holder);// 使用tag保存对象
} else {
   holder = (ViewHolder) convertView.getTag();
}
   holder.text.setText(DATA[position]);
   holder.icon.setImageBitmap((position & 1) == 1 ? mIcon1 : mIcon2);
   return convertView;
}

static class ViewHolder {
    TextView text;
    ImageView icon;
}

也可以不使用ViewHolder, 将ListItem定义为自定义用户控件。

你可能感兴趣的:(ListView)