2011-02-04 11 views
5

से तत्व प्राप्त नहीं कर सकता है मेरे पास 2 गतिविधियां हैं। 2 .xml लगता है:लेआउट

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
    <ListView 
      android:id="@+id/TrainsListView" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
     /> 
</LinearLayout> 

प्रकट का एक हिस्सा:

<activity android:name="TrainsActivity"> 

</activity> 

और मैं TrainsListView पाने के लिए कोशिश कर रहा हूँ:

mListView = (ListView) findViewById(R.id.TrainsListView); 

लेकिन इस mlistView के बाद शून्य है। क्यूं कर?

+0

मैं जानना चाहता हूं कि आपने अपनी गतिविधि कक्षा में ListActivity या गतिविधि को विस्तारित किया है। –

+0

मैंने गतिविधि बढ़ा दी है। – arts777

उत्तर

12

मुझे लगता है कि यह आपकी गतिविधि की onCreate() विधि में हो रहा है क्योंकि आप कहने से पहले findViewById() पर कॉल कर रहे हैं। यदि ऐसा नहीं है तो कृपया अपना अधिक कोड दिखाएं।

+0

ओह, ज़ाहिर है, बेवकूफ सवाल के लिए खेद है। – arts777

6

इस हैं findViewById() अपने लक्ष्य आईडी खोजने के लिए विफल हो रहा है, यहाँ कुछ कारण हैं हो सकता है:।

[[आपके मामले में, मैं # 1 या # 2 संदेह]

  1. SetContentView() (या inflate) अभी तक एक लेआउट को खोजने के लिए अभी तक नहीं जोड़ा गया है।

  2. SetContentView() (या inflate) को उस लेआउट के साथ बुलाया गया था जिसमें लक्ष्य आईडी नहीं है, उदा। आपने गलत लेआउट निर्दिष्ट किया है।

  3. लेआउट में या कोड में id में एक टाइपो है।

  4. आप आयात करने के बाद गलत R फ़ाइल (एक पुस्तकालय घटक के R फ़ाइल की तरह) और संयोग से एक ही आईडी भी अन्य R फ़ाइल में इस्तेमाल किया गया था)।

  5. आप गलत दृश्य खोज रहे हैं, उदा। आपने मेनू लेआउट को फुलाया और इसे मूल लेआउट में संलग्न नहीं किया और फिर जब आप फुलाए गए मेनू लेआउट (menu.findBiewById(..)) को खोजना चाहते थे तो रूट लेआउट (findBiewById(..)) में किसी आईडी को खोजने का प्रयास किया।

संबंधित मुद्दे