@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
holder = new ViewHolder();
convertView = LayoutInflater.from(mContext).inflate(R.layout.custom_list_item, null);
holder.headIcon = (ImageView) convertView.findViewById(R.id.iv_small_head);
holder.username = (TextView) convertView.findViewById(R.id.tv_name);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
return convertView;
}
static class ViewHolder {
private ImageView headIcon;
private TextView username;
}
}
以上是最简单的自定义adapter代码,就是简单对convertView进行复用,复用的意思是回收已经用过的视图,需要显示的时候再次利用。这种方法效率很高,无论你的数据有多少条,都可以很流畅的进行显示。
这里有一张图可以很好的体现ListView的复用原理