码迷,mamicode.com
首页 > 其他好文 > 详细

BaseAdapter

时间:2016-05-07 08:29:24      阅读:169      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!