数据适配器BaseAdapter
来源:互联网 发布:ios wkwebview 传值js 编辑:程序博客网 时间:2024/04/30 13:44
数据适配器adapter的作用就是将多种多样的数据源适配成listView可以读取的模式
1.降低程序的耦合性
2.容易扩展
最常用的数据适配器:BaseAdapter
ListView的显示和缓存机制
总结来讲:
需要才显示,显示完就被回收到缓冲池中。
1. 屏幕上滑时,先将item1回收到View缓冲池中
2. 新要显示的item8从View缓冲池中取出,并重新设置好item8所要显示的数据
3. item8显示出来
public View getView(int position, View convertView, ViewGroup parent) {
View view = mInflater.inflate(R.layout.item, null);
ImageView imageView = (ImageView) view.findViewById(R.id.imageView);
TextView title = (TextView) view.findViewById(R.id.tv_title);
TextView content = (TextView) view.findViewById(R.id.tv_content);
ItemBean itemBean = itemList.get(position); //得到当前的这个ItemBean对象
//然后用这个itemBean填充item转化过来的view
imageView.setImageResource(itemBean.imageResId);
title.setText(itemBean.title);
content.setText(itemBean.content);
return view;
}
没有利用baseadapter的缓存机制
通过判断BaseAdapter中的getView()方法的参数convertView,我们可以利用ListView给我们提供的缓冲机制。但是还是有瓶颈,就是findViewById()方法。
使用ViewHolder类来优化BaseAdapter中的getView()方法:
1. 在BaseAdapter的继承类中先创建一个ViewHolder类,里面的成员变量对应我们ListView中一个View的所有控件;
2. 判断getView()方法的一个参数convertView是否为空;
3. 通过VIew的setTag()方法将ViewHolder和convertView绑定;
4. 通过View的getTag()方法从convertView中取出与之关联的ViewHolder对象
5. 通过ViewHolder对象找到对应控件
ViewHolder的作用是将ListView中每个View中的每个控件都关联上了getView()中提供的convertView,从而也为这些控件提供了ListView的缓冲机制,进而避免了用大量的findViewById()创建这些小的控件,因为既然ListView中的每个View可以通过缓冲重复利用,那么这些View中的控件也就可以了,ViewHolder就是起到了这个承接着的作用。
- 数据适配器BaseAdapter
- 数据适配器 BaseAdapter
- BaseAdapter数据适配器
- 数据适配器---BaseAdapter
- 数据适配器--BaseAdapter
- 数据适配器——BaseAdapter
- Android必学之数据适配器BaseAdapter
- 数据适配器BaseAdapter的使用与优化
- Android必学之数据适配器BaseAdapter
- BaseAdapter(数据适配器)的使用与优化
- Android必学之数据适配器BaseAdapter
- Android必学之数据适配器BaseAdapter
- baseadapter适配器
- BaseAdapter适配器
- baseAdapter适配器
- BaseAdapter适配器
- android中继承BaseAdapter实现DataAdapter通用数据适配器
- android开发之继承BaseAdapter实现通用数据适配器
- 并查集
- 微信开发几个坑
- C#基础加强第二天总结--面向对象2及字符串
- pat 1092. To Buy or Not to Buy (20)
- 解决Eclipse中C++代码显示Symbol 'std' could not be resolved的问题
- 数据适配器BaseAdapter
- 线程与进程(上)
- Merge k Sorted Lists
- LeetCode Product of Array Except Self
- 练习1:visual dsp++ 5.1 ts201 工程的建立
- junit测试框架
- hoj 1368 Very Simple Arithmetic java 高精度
- OC之Block的使用
- Mac 下 Homebrew安装