ViewHolder的作用主要是对自定义的Adapter进行一些性能优化。常见写法有两种:
一、直接写法:
直接在自定义的Adapter里面添加ViewHolder类以使用:
class ViewHolder{
Button btn;
ImageView iv;
TextView tv;
...
}
二、通用写法
public class ViewHolder {
@SuppressWarnings("unchecked")
public static <T extends View> T get(View view, int id) {
SparseArray<View> viewHolder = (SparseArray<View>) view.getTag();
if (viewHolder == null) {
viewHolder = new SparseArray<View>();
view.setTag(viewHolder);
}
View childView = viewHolder.get(id);
if (childView == null) {
childView = view.findViewById(id);
viewHolder.put(id, childView);
}
return (T) childView;
}
}