我正在尝试在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.你能帮忙吗?
答案 0 :(得分:7)
您使用的是错误的资源类型,您需要引用R.layout
而不是R.id
。试试android.R.layout.simple_list_item_1
:
new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, new String[] { "a", "b"});
答案 1 :(得分:3)
为ListView的行定义布局,并调用它,例如simple_list_item_1
(在文件夹simple_list_item_1.xml
中创建文件res/layout
)。将TextView
放入此布局:
<?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"});
Here您会找到有关列表和适配器的详细说明。