2011-06-10 9 views
5

मैं findViewById() में बड़ी समस्या को वापस कर रहा हूं जिसमें से बहुत से सामना करना पड़ता है। मैं समझता हूं कि findViewById() को onFinishInflate() में व्यू फुलाए जाने के बाद ही बुलाया जाना चाहिए। मेरा सवाल है - मुद्रास्फीति क्या है?लेआउट इन्फ्लेटर और ऑनफिनिशफ्लैट()

गतिविधि में मैं setContentView(R.layout.testview) पर कॉल करता हूं जिसे व्यू कन्स्ट्रक्टर को कॉल करना चाहिए और ऑनड्रा() को भी कॉल करना चाहिए। तो क्या दृश्य को फुलाता है यह नहीं करता है? यदि ऐसा है तो LayoutInflater क्यों है और वास्तव में दृश्य को बढ़ाने के लिए एक फ़ंक्शन क्यों है? असल में मेरे कोड onInflateView() में कभी भी कॉल नहीं किया जाता है, भले ही पूरा दृश्य प्रस्तुत किया जाता है और मैं प्रोग्राम के साथ बातचीत करने में सक्षम था। यह मुझे बताता है कि देखें मुद्रास्फीति व्यू के कन्स्ट्रक्टर और onDraw() फ़ंक्शंस को कॉल करने से अलग है। क्या कोई कृपया समझा सकता है?

संपादित करें: इसके अलावा मेरे पास एक कस्टम दृश्य है जिसे मैं ऑन ड्रा() फ़ंक्शन का उपयोग करके आकर्षित करता हूं। किसी भी तरह onFinishInflate() फ़ंक्शन कभी मेरे लिए नहीं बुलाया जाता है। इसका कारण क्या हो सकता है?

-पी

उत्तर

6

मेरा प्रश्न है - दृश्य मुद्रास्फीति क्या है?

मुद्रास्फीति देखें लेआउट XML फ़ाइल को View ऑब्जेक्ट्स के संबंधित पेड़ में परिवर्तित करने का कार्य है। आप मैन्युअल रूप से इस का उपयोग करते हुए LayoutInflater, आदि

करते हैं, या एंड्रॉयड setContentView() से आप के लिए यह होता है, में निर्मित Adapter कक्षाएं गतिविधि मैं setContentView (R.layout.testview) कहते हैं जो दृश्य निर्माता बुलाना चाहिए और ऑनड्रा() भी कॉल करता है। तो क्या दृश्य को फुलाता है यह नहीं करता है?

setContentView() आपूर्ति की गई लेआउट फ़ाइल को बढ़ाता है।

यदि ऐसा है तो वास्तव में दृश्य को बढ़ाने के लिए एक लेआउट इन्फ्लेटर और फ़ंक्शन क्यों है?

क्योंकि कभी कभी आप इस तरह के पंक्तियों के विभिन्न प्रकार के साथ एक जटिल ListView के रूप में, हाथ से यह करने के लिए (उदा।,। हेडर और विस्तार) की जरूरत है।

+0

धन्यवाद! क्या Google ApiDemos में ऐसा कोई उदाहरण है? इसके अलावा setFontishView() को setContentView() के साथ बुलाया जाता है? मेरे मामले में इसे बिल्कुल नहीं बुलाया गया। – user220201

+0

@ user220201: "क्या Google ApiDemos में ऐसा कोई उदाहरण है?" क्या उदाहरण है? "इसके अलावा setFontishView() को setContentView() के साथ बुलाया जाता है? मेरे मामले में इसे बिल्कुल नहीं कहा जाता है।" - मैंने पहले 'onFinishInflate()' का उपयोग किया है और यह ठीक काम करता है, हालांकि मेरे पास इसका कोई वर्तमान नमूना नहीं है। यदि आपने विधि हस्ताक्षर में गलती की है तो सुनिश्चित करें कि आपके पास '@ ओवरराइड 'एनोटेशन है। – CommonsWare

+1

मैं एक उदाहरण के बारे में पूछ रहा था जहां लेआउट इन्फ्लेटर को कॉल करने की आवश्यकता है। – user220201

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