public class VideoListAdapter extends BaseAdapter {
private Context context;
private List<VideoInfo> dataList; //数据源
private LayoutInflater inflater;
public VideoListAdapter(Context context, List<VideoInfo> dataList) {
this.context = context;
this.dataList = dataList;
this.inflater = LayoutInflater.from(context);
}
private class ViewHolder { //这是重点一
public ImageView photo;
public TextView title;
}
@Override
public int getCount() {
return dataList.size();
}
@Override
public Object getItem(int position) {
return dataList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final VideoInfo video = dataList.get(position);
if (convertView == null) { //第一次加载时 判断convertView 是否已存在,若存在则重复利用,否则新加载一个
convertView = inflater.inflate(R.layout.video_item_adapter, null);
ViewHolder vh = new ViewHolder();
vh.photo = (ImageView) convertView.findViewById(R.id.video_item_photo);
vh.title = (TextView) convertView.findViewById(R.id.video_item_title);
convertView.setTag(vh);//重点2
}
ViewHolder holder = (ViewHolder) convertView.getTag(); //重点3
holder.title.setText(video.getTitle());
return convertView;
}
}
上次写的BaseAdapter 太水了 下面为改进的 减少加载的view 让view重复利用起来