请帮我这个代码 - 我基本上是通过一本书并尝试自己创建示例,但我无法通过这个错误。我检查了我的LogCat,它说“java.lang.RuntimeException:你的内容必须有一个ListView,其id属性是'android.R.id.list'”。我知道可能有一些小细节我忽略了导致这种情况,但是我不能把它放在它上面 - 它几乎是本书给出的工作程序示例的精确副本。我正在尝试创建一个简单的ArrayAdapter并为其提供一个虚拟列表。以下是三个感兴趣的文件:
package com.example.bwett.SimpleList;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class SimpleList extends ListActivity {
String[] item = {"Item1", "Item2", "Item3", "Item4",
"Item5", "Item6", "Item7", "Item8"};
TextView mainLabel;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
setListAdapter(new ArrayAdapter<String> (this,
R.layout.row,
R.id.label,
item));
mainLabel = (TextView)findViewById(R.id.mainLabel);
}
public void onListItemClick(ListView parent, View v,
int position, long id){
mainLabel.setText(item[position]);
}
}
main.xml中:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/mainLabel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<ListView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false"/>
</LinearLayout>
ROW.XML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/ok"
android:layout_width="22px"
android:layout_height="fill_parent"
android:padding="2px"
android:src="@drawable/icon"/>
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textSize="44sp"/>
</LinearLayout>
答案 0 :(得分:3)
添加到<ListView>
xml元素:
android:id="@android:id/list"
错误是因为如果您使用ListActivity
,Android会依赖您识别布局中的列表元素。有关详细信息,请参阅ListActivity documentation。