Android之ListView的优化
来源:互联网 发布:floyd算法求最短路径 编辑:程序博客网 时间:2024/05/22 06:30
ListView是Android的一个常用的控件,用俩显示多行数据,
最基本的用法就是,得到了ListVIew对象后,用setAdapte()方法去给ListView填充数据.
Adapter有很多,有ArrayAdapter 只能显示一行TextView .,SImpleAdapter有很好的拓展性,大部分的情况下都是继承SimpleAdapter来拓展ListView的内容.
SimpleCursorAdapter就类似SImpleAdapter和数据库的结合.
当系统需要绘制ListView的时候,会首先调用Adapter中的getCount()方法来得到列表的长度,然后开始绘制第一行,绘制的时候调用getView()方法来取得需要显示的View,
绘完到屏幕可见的item的之后,把其他的就存放在Recyled里,把可以显示的才存放在内存里.
当一个item因为滑动变成不可见时,这个item会作为会作为一个参数传递给getView(),作为一个新的可见的convertView而循环使用
class MyAdapter extends SimpleAdapter{public View getView(int position,View convertView,ViewGroup parent) {View view=convertView; ViewHolder holder; if(view==null){view=LayoutInflater.from(context).inflate(R.layout.section_list_item1,null); holder=new ViewHolder(); holder.tv_name=(TextView)view.findViewById(R.id.contact_contactinfoitem_tv_name); holder.tv_phone=(TextView)view.findViewById(R.id.contact_contactinfoitem_tv_phoneNum); view.setTag(holder); }else{ holder=(ViewHolder)view.getTag(); } ContactInfo info=contacts.get(position); if(info!=null){holder.tv_name.setText(info.getContactName()); holder.tv_phone.setText(info.getContact_Phone()); } return view; }public int getCount(){return 0;}static class ViewHolder { TextView tv_name,tv_phone;} }
1.首先判断这个convertView是不是为null,如果为null的话用LayoutInflater去加载一个,
2.convertView的目的在于循环使用,避免每次都要去加载一个layout. 节省内存.
3.使用ViewHolder是保证不用每次都要findViewById()来获得控件的对象.
4.使用一个静态的ViewHolder是Java的编程规范,
5.VIew.setTag()方法可以把View保存起来,以后用getTag()方法多次使用
0 0
- android 之listview的优化
- Android之ListView的优化
- Android之ListView的优化
- Android之ListView优化
- Android之ListView优化
- android ListView的优化之 static ViewHolder
- Android初学之ListView对象的优化
- Android的ListView之优化1
- Android的ListView之优化2
- Android学习之ListView的优化01
- Android之ListView的简单优化两步走
- Android:ListView优化之具有弹性的ListView
- Android开发之ListView详解 以及简单的listView优化
- Android ListView的优化
- Android ListView 的优化
- android ListView的优化
- android----------ListView的优化
- Android ListView的优化
- string str = null 与 string str = “” ,string str=string.Empty
- 湖南一少女患结肠癌引关注 专家提醒嗜食麻辣烫要当心
- ora-01722:invalid number
- 嵌入式 获取网卡设备以及IP和MAC地址示例以及网络编程之ioctl小结
- 日常记录
- Android之ListView的优化
- 网易人事架构调整 总编李甬全面掌管内容和销售
- ref和out的区别
- Hu不变矩原理及opencv实现
- override与重载(overload)的区别
- 黑马程序员_学习笔记:14) Properties、PrintStream、SequenceInputStream:序列流、RandomAccessFile、管
- STL 之 multimap 源码剖析
- Hadoop优化与调整
- 冒泡排序图解