Programing

RuntimeException : 콘텐츠에는 id 속성이 'android.R.id.list'인 ListView가 있어야합니다.

lottogame 2020. 9. 10. 08:20
반응형

RuntimeException : 콘텐츠에는 id 속성이 'android.R.id.list'인 ListView가 있어야합니다.


런타임 예외가 발생합니다.

java.lang.RuntimeException : 콘텐츠에는 id 속성이 'android.R.id.list'인 ListView가 있어야합니다.

나는 무엇이 잘못되었는지 모른다.

@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>

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

ListActivity를 계속 사용하려는 경우 오류가 해결됩니다.


에 대한 호출을 제거하십시오 setContentView-급진적 인 일을하지 않는 한 ListActivity에서 필요하지 않습니다. 코드는 그것 없이도 작동합니다.


또 다른 방법은 ListActivity. 그냥 확장 Activity하면으로 목록보기를 만들고으로 목록보기를 setContentView()가져올 수 있습니다 findViewById(R.id.yourlistview).

에서 확장하는 ListActivity경우 setContentView(). 에 의해 목록 활동에서 호스팅되는 기본 목록보기를 가져와야합니다 getListView().


I had a similar issue with the error message you received, and I found it was because I was extending ListActivity instead of just Activity (that's what I get for re-purposing code from a different project ;) )


<ListView android:id="@id/android:list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:drawSelectorOnTop="false"
        android:scrollbars="vertical"/>

I face like this too. In my case (Maybe not relevant with your case, just share to others) in class mainActivity.java yourClassName extends ListActivity(){...} change to yourClassName extends Activity(){...}


I also faced this issue, I was extending my activity class from listactivity, but the id of my list view was not defualt I changed it back to list and now its working fine. Asim soroya

참고URL : https://stackoverflow.com/questions/3040374/runtimeexception-your-content-must-have-a-listview-whose-id-attribute-is-andro

반응형