ListView的使用和特性研究(一)
ListView的使用和特性研究(一)
?
转载自 : http://www.android777.com/index.php/tutorial/listview-1.html
?
ListView应该是android里最常用的显示数据的控件了。它用来将集合数据一个个抽取出来按照从头到尾往下显示的控件里,这些是在手机中经常看到的一些布局。
?
我们可以看从简单的到难的布局,一步步学习如何使用ListView来构建UI和了解ListView的原理和实现机制。
?
我们看看最简单的ListView效果:
?

?
带有图标的ListView效果图:

其他稍微复杂的ListView的布局。


?
下面我们从简单到难的步骤分析演示如何使用android中的ListView。
?
1.简单的ListView布局(单行显示信息)
首先我们先创建存放ListView的Activity所需要的布局xml文件。
?
list_view1.xml
?上面代码我们创建了一个布局配置文件,里面只放了一个ListView控件,将其ID设置为:list1。
?
接下来是java代码,大概步骤是:先找出ListView,然后往ListView里填充东西。
?
?以上的代码很简单,运行效果如下:
上面代码有一定的局限性,就是比如你要创建稍微复杂点的布局,如名片卡,显示名字,电话信息,地址等。像这种稍微复杂的布局就无法用上面的来做,因为在上面的例子中,ArrayAdapter里装的数据都是String型,单行仅能显示一条数据。
?
?
2.进阶的ArrayAdapter,自定义布局来显示ArrayAdapter里面装的对象。
?
这边我们沿用上面的xml布局,因为要往ArrayAdapter里面装对象,所以这边我们先定义一个对象,最后要做的就是将对象的信息显示在ListView中。
?
?
?
接下来将这个对象装进ArrayAdapter显示出来。
?
依据上面的结果,可以得出结论,ArrayAdapter默认是调用它里面装的对象的toString方法来展示数据。但是上面的信息显得太凌乱,所以这边要介绍另外一个ArrayAdapter的使用方法,就是扩展ArrayAdapter,通过继承它来实现自定义视图的展现。所以刚开始要做的是先创建一个xml布局文件,确定ListView里每行数据显示的样式。
?
list_view1_item.xml
?
?接下来通过继承ArrayAdapter,然后重写getView方法,用来将自定义布局的View注入到ListView中,然后将每条数据装进对应的View中。
?
PersonAdapter.java
?
以上继承ArrayAdapter类,重写getView方法,里面的实现还不是最高效率,这边涉及到ListView的懒加载机制和实现的原理,以后详论。
?
3.通过上面两个例子我们可以简单的了解创建ListView的一般步骤,总的说来可以总结为下面几个步骤。
创建ListView里item的布局xml文件,第一个例子引用了android.R.layout.simple_list_item_1 ,所以省略掉创建的步骤,缺点是只能显示一条信息。创建数据源,数据源可能是手动添加或查询数据库获取。通过继承ArrayAdapter,重写getView方法来进行数据绑定。?
?
?
?
?
?
3 楼 Jasper_Success 2012-02-09 请教一下带有图标的那个是怎么弄得?谢谢
