BaseAdapter

来源:互联网 发布:淘宝买自行车靠谱吗 编辑:程序博客网 时间:2024/06/11 02:10

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,在构造方法中初始化用于映射的数据List3,创建ViewHolder类,创建布局映射关系4,判断convertView,为空则创建,。并设置tag.否则通过Tag来取出ViewHolder5,给ViewHolder中的控件设置数据
0 0