public class PurchaseAdapter extends BaseAdapter{private LayoutInflater inflater=null;private List> mlist=null;private HashMap mMap=null;public PurchaseAdapter(Context context,List> list) {inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);this.mlist=list;}@Overridepublic int getCount() {return mlist.size();}@Overridepublic Object getItem(int position) {return mlist.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder holder=null;if(convertView==null){convertView=inflater.inflate(R.layout.activity_shipping_address_list_item, null);holder=new ViewHolder();holder.tv_username=(TextView) convertView.findViewById(R.id.activity_shipping_address_list_username);holder.tv_address_district=(TextView) convertView.findViewById(R.id.activity_shipping_address_list_address_district);holder.tv_address_details=(TextView) convertView.findViewById(R.id.activity_shipping_address_list_address_detail);convertView.setTag(holder);}else{holder=(ViewHolder) convertView.getTag();}mMap=(HashMap) mlist.get(position);holder.tv_username.setText(mMap.get("user_name").toString());holder.tv_address_district.setText(mMap.get("address_district").toString());holder.tv_address_details.setText(mMap.get("address_details").toString());return convertView;}static class ViewHolder{TextView tv_username; //收货人真实姓名TextView tv_address_district; //收获地址(太原市杏花岭区)TextView tv_address_details; //收获详细地址(北大街88号2号楼502)}}

使用静态的ViewHoulder的目的则是节省了findViewById的时间。如果不使用ViewHolder,每次getView的时候都需要得到一次子布局,而这也是很耗时并且耗资源的;如果使用了ViewHolder作为子布局的缓存,使用View的setTag方法将缓存与每个item绑定,则也可以省去了findViewById的事件;而将ViewHolder设置为static的目的是指在初始化Adapter时初始化一次这个内部类,否则将会在每次创建Adapter时都要初始化一次,而这是没有必要的。

更多相关文章

  1. Android连接mysql demo_Android实现登陆功能,Android与服务器数据
  2. 【Unity和Android相互调用】AndroidJavaProxy的使用(以C#为主导)
  3. Android实现App自动重启
  4. 《第一行代码Android(第3版)》— Android(安卓)书籍
  5. 使用FragmentTabHost时,tabwidget被frament覆盖。
  6. Android(安卓)seekbar 滑动时上方显示进度
  7. 箭头函数的基础使用
  8. NPM 和webpack 的基础使用
  9. Python list sort方法的具体使用

随机推荐

  1. 如何将网页保存成mhtml格式
  2. SD卡插上一体机时显示文件或目录损坏且无
  3. 如何应对医疗行业的数据安全风险?
  4. 【知识点整理】NOLOGGING、APPEND、ARCHI
  5. 一个可悲的现实情况:中小型企业的规模无法
  6. CPU缓存L1/L2/L3工作原理
  7. sql 注入
  8. 【海量数据学院】DBA的学习方法论系列—
  9. 【转载】TX - row lock contention 的一
  10. 【DG】 基于同一个主机建立物理备库和逻