列表视图(ListView)和ListActivity

ListView是手机系统中使用非常广泛的一种组件,它以垂直列表的形式显示所有列表项。

创建ListView有如下两种方式:

  •   直接使用ListView进行创建。
  • 让Activity继承ListActivity(相当于该Activity显示的组件为ListView)。

     一旦在程序中获得了ListView之后,接下来就需要为ListView设置它要显示的列表项了。在这一点上,ListView表显示出AdapterView的特征;通过setAdapter(Adapter)方法为之提供Adapter、并由Adapter提供列表项即可。

    提示:ListView、GridView、Gallery等AdapterView都只是容器,而Adapter负责提供每个“列表项”组件,AdapterView则负责采用合适的方式显示这些列表项。

实例:改变分隔条、基于数组的ListView

布局文件如下:

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<!-- 直接使用数组资源给出列表项 -->
<!-- 设置使用红色的分割条 -->
<ListView android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:entries="@array/books"
    android:divider="#f00"
    android:dividerHeight="2px"
    android:headerDividersEnabled="false" />
</LinearLayout>

其中数组文件如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="books">
        <item >疯狂Java讲义</item>
         <item >疯狂Ajax讲义</item>
          <item >疯狂XML讲义</item>
           <item >疯狂Java讲义</item>
         <item >疯狂Ajax讲义</item>
          <item >疯狂XML讲义</item>
    </string-array>
</resources>

       上面的布局文件中定义了一个ListView,并通过android:entries指定了列表项数组,该ListView还通过android:divider改变了列表项之间的分隔条。

       上面第一个ListView指定了android:entries="@array/books",该属性值用到了数组资源。

       使用Activity显示上面的ListView,将可以看到如下图所示的效果。

使用数组创建ListView十分简单,当这种ListView能定制的内容很少,甚至连每一个列表项的字号大小、颜色都不能改变。

如果想对ListView的外观、行为进行定制,就需要把ListView作为AdapterView使用,通过Adapter控制每个列表项的外观和行为。

posted @ 2013-10-19 11:37  TealerProg  Views(492)  Comments(0Edit  收藏  举报