多字段列表视图布局,底部/顶部有按钮

时间:2011-11-09 01:52:42

标签: android listview

我正在努力掌握布局,目前我正在尝试设置一个布局,每行包含多个数据字段,并始终在顶部或底部显示一个按钮,如下所示:

示例,5行:

Button
field A Field B Field C
field A Field B Field C
field A Field B Field C
field A Field B Field C
field A Field B Field C

这是我到目前为止,我可以在底部显示按钮,但我无法添加多个字段。

   <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent" android:layout_height="fill_parent">

        <Button android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:id="@+id/ButtonCreate"
            android:text="Create Game" android:layout_alignParentBottom="true" />

        <ListView android:layout_width="fill_parent"
            android:layout_height="fill_parent" android:id="@+id/list"
            android:layout_alignParentTop="true" android:layout_above="@id/ButtonCreate" />

        <ProgressBar style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:id="@+id/progressBarBrowser" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true"></ProgressBar>


    </RelativeLayout>

我尝试将上面显示的文本字段添加到上面的代码中,但没有成功:

 <LinearLayout
        android:orientation="vertical"
        android:layout_width="0dip"
        android:layout_weight="1"
        android:layout_height="fill_parent">
        <TextView
            android:id="@+id/toptext"
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1"
            android:gravity="center_vertical"
        />
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1" 
            android:id="@+id/bottomtext"
            android:singleLine="true"
            android:ellipsize="marquee"
        />
    </LinearLayout>

我在我的活动中这样称呼它:

listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data));

感谢您的任何想法

1 个答案:

答案 0 :(得分:1)

据我所知,第二块XML应该代表listview中的一行。那是对的吗?如果是这样的话:

- 首先,它需要有3个文本视图:字段A,字段B和字段C.不是“底部和顶部”。

- 一个简单的ArrayAdapter不会知道你想要哪些字符串 - 它需要一个字符串列表,每行显示一个。

- 当您创建ArrayAdapter时,您没有引用您定义的布局(当前具有底层文本和拓扑文本的布局) - 您告诉它使用simple_list_item_1,这是一个非常基本的“每行一个文本字段”布局Android框架。

为了实现这一目标,您需要编写自己的适配器,该适配器知道如何将传入数据放在自定义视图中的3个不同字段中。在Android开发者网站上,一个好的起点是Hello ListView。祝你好运!