## BaseAdapter的优化 ##

来源:互联网 发布:西游之路坐骑进阶数据 编辑:程序博客网 时间:2024/05/18 16:55

BaseAdapter的优化

利用ViewHolder实现对BaseAdapter的优化操作
首先建立一个ViewHolder内部类,

class ViewHolder{    public ImageView imageView;    public TextView title;    public TextView content;}

回到getView方法创建一个ViewHolder,对 convertView进行判断

  1. 如果convertView为空,需要通过 inflate方法将一个xml文件转化为convertView,同时将布局中的控件保存到ViewHolder中
private Inflater mInflater;ViewHolder viewHolder;if(convertView==null){    viewHolder=new ViewHolder();//实例化viewHolder    convertView=mInflater.Inflate(R.layout.item,null);    viewHolder.imageView=(ImageView)convertView.findViewById    (R.id.iv_image);    viewHolder.title=(TextView )convertView.findViewById    (R.id.tv_title);    viewHolder.imageView=(TextView )convertView.findViewById    (R.id.tv_content);    convertView.setTag(viewHolder);//将viewHolder与convertView进行关联}

2.当convertView不为空时,直接通过convertView的getTag方法获取所关联的viewHolder对象

else{    viewHolder=(ViewHolder)convertView.getTag;}

3.对所申明控件赋值

ItemBean bean=mlist.get(position);//ItemBean为先前所建的一个class类,用于存放list中的数据.mlist用于保存传递进来的数据 (private List<ItemBean> mlist)viewHolder.imageView.setImageResource(bean.ItemImage);//ItemImage为ItemBean中的属性viewHolder.title.setText(bean.ItemTitle);viewHolder.content.setText(bean.ItemContent);return convertView;
0 0
原创粉丝点击