Android中 Your content must have a ListView whose id attribute is 'android.R.id.list'错误的解决办法

来源:互联网 发布:运动毛巾 知乎 编辑:程序博客网 时间:2024/05/16 18:34

在Android开发中,ListView有着很重要的地位,使用的场合也非常的多,so我们当然要学会好好应用这个如此强大的空间喽~so,在前面的博客中也已经有了对ListView应用的相关介绍,尤其是自定义ListView那篇(BaseAdapter那个)~~~

但是但是……这个控件也是常用控件中比较复杂且编写代码时容易出错的控件之一!!在以后的博客中会依次介绍,现在就先说一下大家肯定也遇到的这个问题吧:

错误提示:Your content must have a ListView whose id attribute is 'android.R.id.list'

对于以上错误,其实可能是因为我们要实现对ListView中setOnItemClick的事件监听而去继承了LiseActivity,但是却没有ListView的标签,网上有说过只要在布局文件中添加如下代码即可:

<ListView android:id="@android:id/list" 或android:id="@id/android:list"android:layout_width="fill_parent"android:layout_height="wrap_content"></ListView>


但是如果我们其实是为了实现自定义的ListView呢?也就是我们后面是通过在BaseAdapter中实现对ListView中空间的监听的,那我们这边就只要继承Activity就可以了的。但是注意,我们毕竟用的是ListView,而我们又没有去继承ListActivity,因此,我们一定要记得在工程中声明一个ListView对象并对其进行实例化,这样我们同样可以得到我们要的ListView了哈~只不过这个时候我们就不能像之前那样直接override  ListActivity中的onListItemClick方法来实现对ListView的点击事件的监听了(当然这边所说的点击事件不包括ListView中Button之类的哈,这个可以在Baseadapter中的getView中实现啦^_<)

不用着急哈,不要忘了我们还有自己实例化的那个ListView哈,有了这个就可以通过这个调用setOnItemClickListener方法喽~具体如下:

listView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {// TODO Auto-generated method stubLog.i("TAG","The Item has been clicked");}});


而这个时候我们也就依然能像之前介绍的那样用与系统提供的SimpleAdapter提供的一样的构造方法来调用我们自己自定义的BaseAdapter喽


just 温馨小Tip  :  BaseAdapter的使用可以参考后面的链接哟^_^:http://blog.csdn.net/listening_music/article/details/6581708

原创粉丝点击