由于getViewById()性能在列表中较为低下,所以使用ViewHolder将已存在的View给缓存下来,提高convertView重复使用的时候的效率。
class ViewHolder{ ImageView img; TextView price; } public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = new ViewHolder(); if(convertView==null){ convertView = inflater.inflate(R.layout.good_list_item, null, false); holder.img = (ImageView) convertView.findViewById(R.id.img); holder.price = (TextView) convertView.findViewById(R.id.price); convertView.setTag(holder); }else{ holder = (ViewHolder) convertView.getTag(); } //设置holder holder.img.setImageResource(R.drawable.ic_launcher); holder.price.setText("$"+list.get(position).price); return convertView; }