2011-11-08 6 views
5

मैं कस्टम एडाप्टर का उपयोग कर ListView लागू कर रहा हूं। प्रदर्शन में सुधार करने के लिए मैं नए inflated View लौट रहा हूं अगर convertView शून्य है, तो पुनर्नवीनीकरण View लौटा रहा है।व्यू की सेटटैग विधि का उपयोग क्या है?

अब इस प्रक्रिया में मैं ViewHolder पैटर्न का इस्तेमाल और View की setTag() विधि का इस्तेमाल किया। शुरू में मैंने सोचा कि यह किसी प्रकार का बुकमार्क है लेकिन मैंने इसका उपयोग पूरी तरह से समझ नहीं लिया है। मैंने अलग-अलग ब्लॉग पोस्ट की जांच की है जहां उन्होंने कोड में इसका इस्तेमाल किया था।

क्या कोई मुझे setTag() विधि का उपयोग समझा सकता है?

उत्तर

13

असल में आप टैग के रूप में किसी भी प्रकार की वस्तु को स्टोर कर सकते हैं (getTag पर कॉल करते समय इसे वापस डालें)। यह एक साधारण आईडी या कुछ जटिल डेटा हो सकता है। यह कुछ जानकारी है जिसे आप इस दृष्टिकोण से जोड़ते हैं।

सूचियों के मामले में और धारक पैटर्न देखें यह एक साधारण वस्तु है जिसमें टैग किए गए दृश्य (समूह) के दृश्यों के संदर्भ शामिल हैं। इसलिए जब आप दृश्य की सामग्री अपडेट कर रहे हों तो आपको हर बार findViewById पर कॉल करने की आवश्यकता नहीं है। यह सिर्फ एक प्रदर्शन अनुकूलन है।

क्या हम दृश्य टैग में सूची आइटम का डेटा स्टोर कर सकते हैं?
नहीं। दृश्य रीसाइक्लिंग के कारण आपके पास (उदा।) 10 विचार हैं जिन्हें 1000 सूची आइटमों के लिए पुन: उपयोग किया जाता है। टैग में डेटा संग्रहीत करने से कोई अर्थ नहीं आता है। सूची आइटम स्थिति को संग्रहीत करने के लिए एक कस्टम डेटा ऑब्जेक्ट का उपयोग करना बेहतर होता है (शायद उसी सरणी जिसमें प्रदर्शित डेटा होता है) या आप सूची आइटम परिवर्तन पर तुरंत इसे जारी रखते हैं।

setTag documentation भी देखें।

+0

उत्तर के लिए धन्यवाद। तो मैं समझता हूं कि हम वस्तुओं को स्टोर कर सकते हैं। क्या यह है कि हम ऑब्जेक्ट की स्थिति को स्टोर कर सकते हैं उदाहरण के लिए सूचीदृश्य की चेकबॉक्स चेक की गई स्थिति? – droidsites

+0

मैंने अपना जवाब अपडेट किया। – Knickedi

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