android用户界面编程技巧——如何使用Adapter
2011-01-11 08:48:43 来源:WEB开发网首先我要说明的是这里“android用户编程技巧”系列的文章中所涉及的技术技巧以及讲述方式不是我本人原创。这些技巧是来自2009年google开发者日(Google Developer Day 2009)上,google公司一位负负责android系统framework层和浏览器开发的一位工程师(很抱歉没有能记住她的名字)的技巧,因为是在开发者大会上演讲是分享的,所以很多人称之为官方的技巧。
当然演讲的具体内容大家可以通过网络轻易得到我也会在后期的文章中给出演讲视频的地址和文档下载地址。我这这里写出来主要是想这样的技术人跟多的知道和使用。过了一年的时间或许这些技巧中有些已经有待更新,那么就让我们一起在这里讨论吧。
重点说演讲中的第一部分——如何使用Adapter。
adapter和listview以及数据源之间的关系
listview相信是大家熟知的一种视图控件了,那么在Adapter相信大家也是一定不会陌生。正如这位是工程师说话Adapter是listview和数据源之间的中间人。关系如图所示。图片是演讲时所用ppt中的图片。
当我们滑动listview的时候每一条数据进入可见区域的时候adapter的getView方法就会被调用,返回代表具体数据的视图。那么当我们的listview中有多条数据的时候(一般都是有多条数据的),getView方法就会反复多次的频繁调用。这样的listview就可以显示很多数据,即成百上千条数据。
那么显而易见,由于getview方法是频繁调用的我们应该经历的在这个方法中尽可能少的产生对象,最大可能大的提高这个方法的工作效率。这样我们的list的更新速度才不至于太慢。
剖析listview
让我们来虚拟一个listview 我们假设这个listview的可见区域中有7个listview,当我们用手指向上滑动一个item的时候,第一条数据就离开了可见区域。在android系统上,为了有效的使用java机制,设立了回收区域。那么离开可见区域的数据就进入了会回收区域,以便于以后再次使用。adpater怎么会对应的标记这个离开可见区域的数据项,adapter同时会生产第八个视图的数据并显示在可见区域。这个就完了listview的一次更新。
简单示例
我们假设需要完成的listview的每一个数据视图如图所示:
它的布局文件如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal"> <ImageView android:id="@+id/icon" android:layout_width="48dip" android:layout_height="48dip" /> <TextView android:id="@+id/text" android:layout_gravity="center_vertical" android:layout_width="0dip" android:layout_weight="1.0" android:layout_height="wrap_content" /> <LinearLayout>
- ››Android 当修改一些代码时,使用什么编译命令可以最...
- ››Android 如何添加一个apk使模拟器和真机都编译进去...
- ››Android 修改Camera拍照的默认保存路径
- ››Android 如何修改默认输入法
- ››android开发中finish()和System.exit(0)的区别
- ››Android手势识别简单封装类
- ››android中查看项目数字证书的两种方法
- ››Android中获取IMEI码的办法
- ››android 相机报错 setParameters failed
- ››Android重启运用程序的代码
- ››Android为ListView的Item设置不同的布局
- ››android bitmap与base64字符串的互相转换
更多精彩
赞助商链接