Friday 15 March 2013

android - When is populated the listview associated to a ListFragment -


मेरे पास यह कोड एक ListFragment के अंदर है:

  TextView tv = (TextView) यह। getListView () getChildAt (0)। tv.setBackgroundColor (। getResources () getColor (R.color.White)); tv.setTextColor (। getResources () getColor (R.color.OtherColor));   

मुझे इस कोड को ऐक्टिविटी सिलेटेड पर लिखना है, लेकिन टीवी शून्य है।

अगर मैं इस कोड को अंदर लिस्ट आईटेमक्लिक में लिखता हूं, तो यह पूरी तरह से कार्य करता है।

है यह क्या दुर्बल है जो मैं चाहता हूं?

कोड:

  सार्वजनिक शून्य पर गतिविधिक्रियाकृत (बंडल सहेजे गए इन्स्टैंसस्टेट) {super.onActivityCreated (SavedInstanceState); स्ट्रिंग [] मूल्य = नया स्ट्रिंग [] {getResources ()। GetString (आर। स्ट्रिंग.मेनू_पार्टीडा), getResources ()। GetString (R.string.menu_acciones), getResources ()। GetString (R.string.menu_resultado)}; ArrayAdapter & LT; स्ट्रिंग & gt; एडेप्टर = नए अर्रे एडाप्टर & lt; स्ट्रिंग & gt; (getActivity (), आर। लय आउट.लिस्ट_इटेम_मेनू, मान); setListAdapter (अनुकूलक); }    

दृश्य केवल "सृजन" कॉलबैक के क्रियान्वयन के बाद ही आकर्षित होते हैं, वहां इस घटना के लिए कोई कॉलबैक नहीं है हालांकि आप पोस्ट () यूआई हैंडलर को एक रननबल और एक ही चीज़ प्राप्त कर सकते हैं:

  getListView ()। पोस्ट (नया रननाबल () {सार्वजनिक शून्य चला ( ) {TextView tv = (TextView) this.getListView ()। GetChildAt (0); टीवी.सेटबैकग्राम रंग (getResources ()। GetColor (R.color.White)); टी वी .सेट टेक्स्ट क्वॉलर (getResources ()। GetColor (R.color लेकिन अन्यथा, यह परिवर्तन ऐसा नहीं करेगा जो आप की उम्मीद करते हैं क्योंकि पंक्ति सूची को सूची-सूची में पुनर्नवीनीकरण किया जाता है। (स्क्रॉलिंग के दौरान आप उन्मूलन व्यवहार देखेंगे।) आपको  स्थिति 0    पर पंक्ति के लेआउट को बदलने के लिए एक कस्टम एडॉप्टर बनाना चाहिए। आप रननबल से दूर हो सकते हैं क्योंकि आपके पास केवल तीन पंक्तियाँ हैं, लेकिन सबसे अच्छा समाधान एडाप्टर का विस्तार करना है।   

No comments:

Post a Comment