ViewHolder를 사용하여 list 성능 최적화
1701 단어 viewholder
다음 코드는 클래스 ViewHolder로 캐시를 잘 활용해 성능을 향상시켰다.
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
// return super.getView(position, convertView, parent);
final ViewHolder holder;
if(convertView==null){
convertView=LayoutInflater.from(context).inflate(resource, null);
holder=new ViewHolder();
holder.button=(Button)convertView.findViewById(R.id.group);
holder.title=(TextView)convertView.findViewById(R.id.title);
holder.image=(ImageView)convertView.findViewById(R.id.photo);
holder.username=(TextView)convertView.findViewById(R.id.username);
convertView.setTag(holder);
}
else{
holder=(ViewHolder)convertView.getTag();
}
holder.title.setText(data.get(position).get(from[0]).toString());
holder.image.setImageBitmap((Bitmap)data.get(position).get(from[2]));
holder.username.setText(data.get(position).get(from[3]).toString());
holder.button.setText(data.get(position).get(from[1]).toString());
return convertView;
}
클래스 ViewHolder 정의:
static class ViewHolder {
ImageView image;
Button button;
TextView title;
TextView username;
}