ConvertView和ViewHolder的个人理解

来源:互联网 发布:软件license管理器 编辑:程序博客网 时间:2024/06/08 11:26
关于ConvertView和viewHolder我个人的理解记录一下方便记忆。ConvertView :顾名思义,是一个能够重复使用的View。当用户将手机滑动,处于屏幕最上面的item被移出,此时android回收系统会将这个View保存起来,以便下一个从底部更新出来的item复用,这样就可减少由于每次getView()都要新建View的内存消耗。ViewHoler:ViewHolder可以看成是一个与ConvertView相互依存的容器,它内部存储了ConvertView所创建的控件,ConvertView通过.setTag()把自身创建的控件存储到ViewHolder中,并与之绑定,后续需要更新ConvertView数据时,可直接通过ViewHolder来进行,从而省去了每次都要findViewById()所消耗的内存。
@Overridepublic View getView(int position, View convertview, ViewGroup arg2) {// TODO Auto-generated method stubViewHolder holder=null;if(convertview==null){convertview=inflater.inflate(R.layout.item, null);holder=new ViewHolder();holder.name=(TextView) convertview.findViewById(R.id.name);holder.des=(TextView) convertview.findViewById(R.id.des);holder.icon=(ImageView) convertview.findViewById(R.id.iv);convertview.setTag(holder);}else{holder=(ViewHolder) convertview.getTag();}    Log.i("info", "names[position]:"+names[position]);    holder.name.setText(names[position]);    holder.des.setText(des[position]);    holder.icon.setImageResource(icon[position]);return convertview;}   private static  class  ViewHolder{      TextView  name ;   TextView des;   ImageView icon;        }

阅读全文
0 0