2

我正在尝试在 ListActivity 中使用 ArrayAdapter:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.id.text1, new String[] { "a", "b"});
setListAdapter(adapter);

这是布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@id/android:text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10" />

    <ListView
        android:id="@id/android:list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="false"
        android:layout_below="@id/android:text1" >

    </ListView>

</RelativeLayout>

我在 StackOverflow 上找到的解决方案似乎都不起作用。我正在使用 API 10。你能帮忙吗?

4

2 回答 2

7

您使用了错误类型的资源,您需要引用R.layoutnot R.id。尝试android.R.layout.simple_list_item_1

new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new String[] { "a", "b"});
于 2012-11-11T00:09:20.813 回答
3

为 ListView 的行定义布局,并调用它,例如(在文件夹中simple_list_item_1创建文件)。把你的进入这个布局: simple_list_item_1.xmlres/layoutTextView

<?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" >
    <TextView
        android:id="@id/android:text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ems="10" />
</RelativeLayout>

然后像这样创建您的 ArrayAdapter:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.simple_list_item_1, R.id.text1, new String[] { "a", "b"});

在这里,您将找到有关列表和适配器的详细说明。

于 2012-11-11T00:45:37.540 回答