Andriod学习笔记2:“Your content must have a ListView whose id attribute is 'android.R.id.list'”问题的解决办法

时间:2022-04-24 11:24:22

问题描述

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,就会报错。