首页 > 其他 > 详细

BaseAdapter

时间:2016-05-07 08:28:37      阅读:161      评论:0      收藏:0      [点我收藏+]

getCount(): 适配器中的数据集中数据的个数

getIntem(int position)获取数据集中与指定索引对应的数据项

getItenId(int position)获取指定行对应的ID

getView(int position,View convertView,ViewGroup parent):获取每一个item的显示内容

——-逗比模式

    View view = mInflater.inflate(R.layout.item,null);

    ImageView imageView = (...)findViewById(...);

    imageView.setImageResource(...);

    return view;

———普通模式

if(concertView == null){

    convertView = mInflater.inflate(R.layout.item,null); 

}

    ImageView imageView =convertView. (...)findViewById(...);

    imageView.setImageResource(...);

return convertView;

————————文艺(优化模式)

ViewHolder viewHolder;

if(converView == null){

    viewHolder = new ViewHolder();

    converView = mInflater.inflate(R.layout.item,null);

    viewHolder.imageView = converView. (...)findViewById(...);

    converVIew.setTag(viewHolder);

}else{

    viewHolder = (viewHolder) convertView.getTag();

}

viewHolder.imageView.setImageResource(...);

return converView;





class ViewHolder{

    public ImageView iamgeView;

}

三种不同的创建方法,原理差不多,重点内容

1:

  View contentView = View.inflate(getApplicationContext(),

                        R.layout.popup_app_item, null);

2:

          View view = null;
            ViewHolder holder;
            if (convertView == null) {

                LayoutInflater inflater = getLayoutInflater();
                view = inflater.inflate(R.layout.listview_item, null);
//                view = View.inflate(getApplicationContext(),
//                        R.layout.list_item_callsms, null);
                    holder.tv_name = (TextView) view.findViewById(R.id.tv_app_name);
                view.setTag(holder);
            }else{
               view =  convertView;
               holder = (ViewHolder) view.getTag();
            }

3:

   private LayoutInflater Inflater;
   Inflater = LayoutInflater.from(context);
if (convertView == null) {
    convertView = Inflater.inflate(R.layout.item, null);
    holder = new Hoder(convertView);
    convertView.setTag(holder);
} else {
    holder = (Hoder) convertView.getTag();
}

-————–ViewHolder优化baseAdapter思路

1,创建bean对象,用于封装数据

2,在构造方法中初始化用于映射的数据List

3,创建ViewHolder类,创建布局映射关系

4,判断convertView,为空则创建,。并设置tag.否则通过Tag来取出ViewHolder

5,给ViewHolder中的控件设置数据

BaseAdapter

原文:http://blog.csdn.net/xs15073722800/article/details/51332032

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!