标签:
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中的控件设置数据
标签:
原文地址:http://blog.csdn.net/xs15073722800/article/details/51332032