BaseAdapter

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)