问题描述
activity_main.xml代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context=".MainActivity">
<ListView
android:id="@+id/lvUser"
android:layout_width="fill_parent"
android:layout_height="wrap_content"></ListView>
</LinearLayout>
MainActivity.java部分代码如下:
public class MainActivity extends ListActivity {
private SimpleCursorAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
启动App之后报以下错误信息:
Your content must have a ListView whose id attribute is 'android.R.id.list
解决办法
由于MainActivity继承了ListActivity类,因此对应的布局文件中需要添加ListView的标签,同时其id必须设置成
android:id="@+id/android:list"
或者
android:id="@android:id/list"
设置成功之后,重新启动App就不会报错了。
ListActivity会从绑定的布局中根据android.R.id.list去查找这个控件,这是他的代码的内部实现,如果不这样定义,内部代码就找不到这个ListView,就会报错。