在尝试创建简单列表时无法弄清楚此RuntimeException的来源

时间:2010-06-28 16:18:47

标签: android listview

请帮我这个代码 - 我基本上是通过一本书并尝试自己创建示例,但我无法通过这个错误。我检查了我的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>

1 个答案:

答案 0 :(得分:3)

添加到<ListView> xml元素:

android:id="@android:id/list"

错误是因为如果您使用ListActivity,Android会依赖您识别布局中的列表元素。有关详细信息,请参阅ListActivity documentation