Android--ListView 更高效的使用 Adapter
来源:互联网 发布:中电海康研究院 知乎 编辑:程序博客网 时间:2024/05/16 05:31
一、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;
}
更新的效率比较:
- Android--ListView 更高效的使用 Adapter
- Android--ListView 更高效的使用 Adapter
- Android--ListView 更高效的使用 Adapter
- Android--ListView 更高效的使用 Adapter
- ListView 更高效的使用 Adapter
- Android ListView的自己adapter使用
- android listview和适配器adapter的使用
- Android的ListView与Adapter使用要点
- android之ListView的Adapter使用
- Android的ListView与Adapter使用要点
- Android中的ListView和Adapter的使用
- ListView----Adapter的使用
- Android数据适配器(Adapter)优化:使用高效的ViewHolder
- Android数据适配器(Adapter)优化:使用高效的ViewHolder
- Android ListView adapter使用教程
- Android对adapter的优化,让你的listview更流畅
- Android 对Adapter的优化,,让你的listview更流畅
- Android中使用Adapter和ListView的使用
- android TextView多行文本始终显示滚动条并自动定位到底部
- WebView 与 JS 之间的关系
- SharePoint 2013使用Exchange2013 配置传入电子邮件
- 最小生成树之Kruskal算法的实现
- oracle 数据类型
- Android--ListView 更高效的使用 Adapter
- Android TextView的各种属性
- apr_dbd_escape
- JavaSE基础复习:面向对象知识点二
- 函数参数中的引用
- 虚拟机启动,硬盘很慢
- 关于ORACLE的UPDATE更新多表的问题
- 64位Eclipse运行时提示“Failed to load the JNI shared library \Java\jre6\bin\client\jvm.dll”的一个解决方案
- 并查集的实现