如何使用布局XML中的内容定义ListView?

时间:2012-05-26 07:37:18

标签: android android-layout android-xml

我正在为Android应用程序进行原型设计,并且在编写任何Java代码之前尝试定义UI。基本的XML布局工作正常,但我无法弄清楚如何添加内容ListView。在ListView中添加LinearLayout可以正常工作,但我无法添加任何内容(甚至不是其他LinearLayout)作为此{{1}的内容 }。

我尝试了相当明显的方法:

ListView

但是在尝试启动活动时失败(在运行时)出现异常:

<ListView android:layout_width="fill_parent"
          android:layout_height="fill_parent"
          android:layout_weight="2">
    <LinearLayout android:orientation="vertical"
                  android:layout_width="fill_parent"
                  android:layout_height="fill_parent">
        <TextView android:text="Line One"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content" />
        <TextView android:text="Line Two"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content" />
        <TextView android:text="Line Three"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content" />
    </LinearLayout>
</ListView>

XML布局语言的SDK文档相当差,我似乎找不到任何明显的方法来使其工作。我错过了什么?

Bonus问题:有没有办法在 build-time 中检测XML布局中的问题,而不是等待Android在运行时抛出异常?

2 个答案:

答案 0 :(得分:3)

  

基本的XML布局工作正常,但我无法弄清楚如何添加带有内容的ListView。

你做不到。您最好的选择是使用ListView元素,其中属性android:entries指向数组资源(这将显示ListView的{​​{1}}}或模拟{ {1}}将其替换为Strings,然后将ListView中所需的内容添加为ScrollView的内容(但它应该是模拟行的内容而不是单独的内容)。

  

奖金问题:有没有办法在XML布局中检测问题   构建时间,而不是等待Android抛出异常   运行

我猜android已经做到了。在ListView中放置内容在xml布局中是可以的(可能),因为ListViewListView,但后来当android实际尝试将内容添加到ListView时如果例外,它将失败,因为操作不受支持。

答案 1 :(得分:1)

你真的没有将其他观点添加到&#34;列表视图,因为它不是一种可以添加嵌套布局和视图的布局类型。

参考本教程,因为它展示了如何正确填充和操作列表视图

http://developer.android.com/resources/tutorials/views/hello-listview.html