ListView 更高效的使用 Adapter
来源:互联网 发布:企业邮箱域名入口 编辑:程序博客网 时间:2024/06/05 05:40
一、Adapter
Adapter是ListView和数据源之间的中间人。
当每条数据进入可见区时,adapter会调用他的getView()方法,并返回代表具体数据的视图。滚动的时候频繁调用,支持成千上万的数据。
①、最简单的方法,最慢最不实用
public void getView(int position , View convertView , ViewGroup parent){ View item = mInflater.inflate(R.layout.list_view, null); (TextView)item.findViewById(R.id.text).setText(DATA[position]); (ImageView)item.findViewById(R.id.img).setImageBitmap(icon); return item; }
②、利用convertView回收视图,效率提高200%
public void getView(int position , View convertView , ViewGroup parent){ if(convertView == null){ convertView = mInflater.inflate(R.layout.list_view, null); } (TextView)convertView.findViewById(R.id.text).setText(DATA[position]);
(ImageView)convertView.findViewById(R.id.img).setImageBitmap(icon);
return convertView; }
③、使用ViewHolder模式,效率再提高50%
static class ViewHolder{ private TextView tv; private ImageView iv; } public void getView(int position , View convertView , ViewGroup parent){ ViewHolder holder; if(convertView == null){ convertView = mInflater.inflate(R.layout.list_view, null); holder = new ViewHolder(); holder.tv = (TextView)convertView.findViewById(R.id.text); holder.iv = (ImageView)convertView.findViewById(R.id.img); convertView.setTag(holder); }else{ holder = (ViewHolder) convertView.getTag(); } holder.tv.setText(DATA[position]); holder.iv.setImageBitmap(icon); return convertView; }
更新的效率比较:
0 0
- Android--ListView 更高效的使用 Adapter
- Android--ListView 更高效的使用 Adapter
- Android--ListView 更高效的使用 Adapter
- Android--ListView 更高效的使用 Adapter
- ListView 更高效的使用 Adapter
- ListView----Adapter的使用
- 自定义ListView使用的Adapter
- listview自定义adapter的使用
- ListView—Adapter的使用
- 如何高效的使用适配器Adapter
- 使用BaseAdapter时如何让listView更高效
- svn如何更高效的使用
- LIstView与Adapter的配合使用
- Android ListView的自己adapter使用
- ListView的Adapter使用 之 初学ArrayAdapter
- android listview和适配器adapter的使用
- Android的ListView与Adapter使用要点
- android之ListView的Adapter使用
- 开发笔记之20140221
- 《精通Web+Analytics+2.0++用户中心科学与在线艺术统计》读书总结
- (二):数据定义语言之数据库操作示例
- Storyboard创建使用UICollectionViewController
- popcount 算法分析
- ListView 更高效的使用 Adapter
- AFNetworking-2.0.3 post使用方法
- Oracle 11.2.0.3 ORA-12012ORA-29280 ORA-06512
- Android 中java 关于字符串与整形转换的相关问题(Invalid Int)
- 如何彻底删除mysql-注册表问题
- 计划任务管理——at
- TortoiseSVN客户端重新设置用户名和密码
- linux虚机添加新硬盘后扩大VG和LV步骤
- 【吐槽篇之经验<二>】SSH架构性能优化经验总结