RuntimeException: आपकी सामग्री में एक ListView होना चाहिए जिसका आईडी विशेषता 'android.R.id.list' है


87

मुझे एक रन टाइम अपवाद मिल रहा है

java.lang.RuntimeException: आपकी सामग्री में एक 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>

15
उत्तर का चयन करना सुनिश्चित करें!
— फिल

mDbHelper क्या है? मैं एक ही नाव पर हूँ और इसे बनाने की कोशिश कर रहा हूँ मेरे ListView ...
— निक Knn

जवाबों:


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

यदि आप अभी भी ListActivity का उपयोग करना चाहते हैं, तो यह त्रुटि को हल करेगा।


48
मुझे एक अलग प्रारूप का उपयोग करना था, android:id="@+id/android:list" अगर यह काम नहीं करता है तो कोशिश करें । आपकी कक्षा को अभी भी ListActivity का विस्तार करना चाहिए, और ListView yourListView = (ListView)findViewById(R.id.yourListView);इसे शुरू करने के लिए करने के बजायListView yourListView = getListView();
— CQM

@CQM यहाँ इस व्यवहार पर किसी भी तरह का पैटर्न है?
— रुई कारनेइरो

5
यह एक समाधान है, अगर ओपी ने कभी किसी उत्तर का चयन करने की परवाह की है!
— स्टेट्स

1
यह काम क्यों करता है? मैं Android को कोई अन्य मान क्यों नहीं दे सकता: आईडी?
— विवेक पांडेय

1
@VivekPandey, क्योंकि आप ListActivity का विस्तार कर रहे हैं, जिसमें Android के साथ एक सूची दृश्य की आवश्यकता होती है: id of list, developer.android.com/reference/android/app/ListActivity.html , नीचे zgcharley स्पष्ट रूप से
— mirageservo

52

कॉल को निकालें setContentView- जब तक आप कुछ कट्टरपंथी नहीं कर रहे हैं, तब तक आपको सूची में इसकी आवश्यकता नहीं है। इसके बिना कोड काम करना चाहिए।


4
लेकिन एक्टिविटी को कैसे पता चलता है कि अगर हम सेट-कॉन्टेंट व्यू () का उपयोग नहीं करते हैं तो कौन सा टेम्प्लेट लागू करना है?
— ses

@, मेरा मानना ​​है कि यह पूर्व-परिभाषित लिस्ट व्यू टेम्पलेट का उपयोग करेगा।
— craned

26

दूसरा तरीका यह है कि विस्तार न करें ListActivity। बस विस्तार होता है Activity, तब आप अपनी सूची दृश्य बना सकते हैं और सूची दृश्य setContentView()प्राप्त कर सकते हैं findViewById(R.id.yourlistview)।

यदि आप इससे बढ़ाते हैं ListActivity, तो उपयोग न करें setContentView()। आपको सूची गतिविधि में होस्ट किए गए डिफ़ॉल्ट सूची दृश्य की आवश्यकता है getListView()।


10

मुझे आपके द्वारा प्राप्त त्रुटि संदेश के साथ एक समान समस्या थी, और मैंने पाया कि मैं सिर्फ गतिविधि के बजाय ListActivity का विस्तार कर रहा था (यह है कि मुझे एक अलग परियोजना से पुन: प्रयोजन कोड के लिए क्या मिलता है;);


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

3

मेरा भी इस तरह सामना होता है। मेरे मामले में (शायद आपके मामले के साथ प्रासंगिक नहीं है, बस दूसरों को साझा करें) कक्षा में mainActivity.java yourClassName extends ListActivity(){...}परिवर्तन के लिएyourClassName extends Activity(){...}


1
मुझे यह वास्तव में उपयोगी लगा। इसे साझा करने के लिए धन्यवाद बारास।
— अय्यूब

अगली बीयर मुझ पर है
— वेंकट टाटा

1

मुझे इस मुद्दे का भी सामना करना पड़ा, मैं अपनी गतिविधि वर्ग को सूचीबद्धता से निकाल रहा था, लेकिन मेरे सूची दृश्य की आईडी खराब नहीं थी मैंने इसे वापस सूची में बदल दिया और अब इसका काम ठीक है। असीम सोर्यो

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.