我遇到了运行时异常
java.lang.RuntimeException:您的内容必须具有其ID为其的ListView 属性是'android.R.id.list'
我不知道出了什么问题。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.newslist);
mDbHelper.open();
fillData();
}
private void fillData() {
Bundle extras = getIntent().getExtras();
long catID = extras.getLong("cat_id");
Cursor c = mDbHelper.fetchNews(catID);
startManagingCursor(c);
String[] from = new String[] { DBHelper.KEY_TITLE };
int[] to = new int[] { R.id.newslist_text };
SimpleCursorAdapter notes = new SimpleCursorAdapter(this, R.layout.text_newslist, c, from, to);
setListAdapter(notes);
}
newslist.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ListView
android:id="@+id/catnewslist"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</ListView>
</LinearLayout>
text_newslist.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:text="@+id/newslist_text"
android:id="@+id/newslist_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
</LinearLayout>
答案 0 :(得分:184)
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
如果您仍想使用ListActivity,这将解决错误。
答案 1 :(得分:52)
删除对setContentView
的调用 - 除非你做了一些激进的事情,否则你不需要在ListActivity中使用它。代码应该没有它。
答案 2 :(得分:26)
另一种方法是,不要扩展ListActivity
。只需展开Activity
,然后您就可以setContentView()
创建列表视图,并按findViewById(R.id.yourlistview)
获取列表视图。
如果您从ListActivity
延伸,请不要使用setContentView()
。您需要getListView()
获取列表活动中托管的默认列表视图。
答案 3 :(得分:10)
我收到的错误消息也有类似的问题,我发现这是因为我正在扩展ListActivity而不仅仅是Activity(这是我从另一个项目中重新设计代码所得到的;)
答案 4 :(得分:6)
<ListView android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="false"
android:scrollbars="vertical"/>
答案 5 :(得分:3)
我也是这样面对的。在我的案例中(可能与您的案例无关,只与他人分享)在班级mainActivity.java
yourClassName extends ListActivity(){...}
更改为yourClassName extends Activity(){...}
答案 6 :(得分:1)
我也遇到过这个问题,我正在从listactivity扩展我的活动类,但我的列表视图的id不是defualt我把它改回列表,现在它工作正常。 Asim soroya