Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RuntimeException:您的内容必须具有id属性为“android.R.id.list”的ListView_Android - Fatal编程技术网

RuntimeException:您的内容必须具有id属性为“android.R.id.list”的ListView

RuntimeException:您的内容必须具有id属性为“android.R.id.list”的ListView,android,Android,我得到一个运行时异常 java.lang.RuntimeException:您的内容必须具有id为的ListView 属性为“android.R.id.list” 我不知道怎么了 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.newslist); mDbHelper.open();

我得到一个运行时异常

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

text_newslist.xml


删除对setContentView的调用-除非您正在做一些激进的事情,否则在ListActivity中不需要它。代码在没有它的情况下应该可以工作。

我对您收到的错误消息也有类似的问题,我发现这是因为我扩展了ListActivity,而不仅仅是Activity,这正是我从另一个项目中重新设计代码的目的

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

如果您仍然想使用ListActivity,这将解决错误。

我也遇到了这个问题,我从ListActivity扩展了我的activity类,但列表视图的id没有取消,我将其改回了list,现在它工作正常。
Asim soroya

另一种方法是,不要扩展ListActivity。只需扩展活动,就可以通过setContentView创建列表视图,并通过findViewByIdR.id.yourlistview获取列表视图


如果从ListActivity扩展,则不要使用setContentView。您需要通过getListView获取列表活动中托管的默认列表视图。

我也这样面对。在我的情况下,可能与您的情况无关,只需在mainActivity.java类中与其他人共享即可
yourClassName扩展列表活动{…}更改为yourClassName扩展活动{…}

请确保选择答案!什么是mDbHelper?我在同一条船上,试图让它在我的ListView中工作……我必须使用不同的格式,如果不工作,请尝试android:id=@+id/android:list。类仍然必须扩展ListActivity,而不是执行ListView yourListView=ListViewfindViewByIdR.id.yourListView;执行此操作以初始化ListView yourListView=getListView@CQM这里有任何关于这种行为的模式吗?这是解决方案,如果OP愿意选择答案的话!为什么这样做有效?为什么我不能给android:id分配任何其他值?@VivekPandey,因为您正在扩展ListActivity,它需要一个具有android:id的列表的ListView,下面的zgcharley解释得很清楚,但是如果我们不使用setContentView,Activity如何知道应用什么模板?@ses,我相信它将使用预定义的ListView模板。我发现这非常有用。谢谢Baras分享。下一杯啤酒我请客。
<?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>
<ListView android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>
<ListView android:id="@id/android:list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:drawSelectorOnTop="false"
        android:scrollbars="vertical"/>