Android BaseAdapter使用及listview优化
来源:互联网 发布:淘宝卖家发微淘在哪儿 编辑:程序博客网 时间:2024/05/04 21:53
public class PurchaseAdapter extends BaseAdapter{private LayoutInflater inflater=null;private List<HashMap<String,Object>> mlist=null;private HashMap<String,Object> mMap=null;public PurchaseAdapter(Context context,List<HashMap<String,Object>> 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<String,Object>) 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时都要初始化一次,而这是没有必要的。
0 0
- Android BaseAdapter使用及listview优化
- Android ListView使用BaseAdapter 优化
- Android ListView使用BaseAdapter与ListView的优化
- Android ListView使用BaseAdapter与ListView的优化
- Android ListView使用BaseAdapter与ListView的优化
- Android ListView使用BaseAdapter与ListView的优化
- Android ListView使用BaseAdapter与ListView的优化
- Android ListView使用BaseAdapter与ListView的优化
- Android ListView使用BaseAdapter与ListView的优化
- Android ListView使用BaseAdapter与ListView的优化
- Android ListView使用BaseAdapter与ListView的优化
- Android ListView使用BaseAdapter与ListView的优化
- Android ListView使用BaseAdapter与ListView的优化
- Android ListView使用BaseAdapter与ListView的优化
- Android ListView使用BaseAdapter与ListView的优化
- Android ListView使用BaseAdapter与ListView的优化
- Android ListView使用BaseAdapter与ListView的优化
- Android ListView使用BaseAdapter与ListView的优化
- Activity的启动模式与flag详解
- ubuntu server修改系统时区和系统时间
- android:duplicateParentState属性解释
- 系统监控必备工具procmon
- 精确的数值计算,不用递归,看了好长时间才看懂!!!!!!
- Android BaseAdapter使用及listview优化
- java 基础:java.util.Date和java.sql.Date的区别和相互转化
- Windows下NDIS透密加密系统设计
- [C/C++标准库]_[初级]_[使用string stream]
- 【android】根据init.rc启动action和service
- Linux bonding
- 《OpenGL超级宝典4》学习笔记——第五章(一)
- ubuntu 图形界面
- #ifndef#define#endif的用法(整理)