2011-01-25 11 views
6

मैं एक छवि ग्रिड व्यू लेआउट स्थापित करने की कोशिश कर रहा हूं, और इसमें बेसएडाप्टर क्लास से एक नई कक्षा प्राप्त करना शामिल है। मैं वेबसाइट डेवलपर.android.com पर ट्यूटोरियल का उपयोग कर रहा हूं, लेकिन मुझे अभी भी समझ में नहीं आता कि इसका क्या अर्थ है। क्या कोई मुझे बता सकता है कि बेसएडाप्टर वास्तव में क्या है? मैं एंड्रॉइड डेवलपर्स वेबसाइट द्वारा प्रदान की गई परिभाषा को समझ नहीं पा रहा हूं।बेसएडाप्टर को समझना और उनका उपयोग कैसे करें

धन्यवाद

उत्तर

3

http://developer.android.com/resources/tutorials/views/hello-gridview.html

GridView एक AdapterView के रूप में जाना देखने के एक प्रकार का एक उपवर्ग है। इन्हें आम तौर पर कई छोटे दृश्य होते हैं, लेकिन उन्हें उन दृश्यों को देने के लिए एडाप्टर पर भरोसा करते हैं। बेसएडाप्टर क्लास वह है जिसे आप एडाप्टर व्यू (आपके ग्रिड व्यू) को प्रदर्शित करने के तरीकों को ओवरराइड करने के लिए बढ़ाते हैं। ओवरराइड करने का सबसे महत्वपूर्ण तरीका getView() विधि है, जिसमें आप ग्रिड पर किसी विशेष स्थिति पर प्रदर्शित करने के लिए दृश्य को वापस कर देते हैं।

हालांकि इस सेटअप थोड़ा भ्रामक और जटिल है, एंड्रॉयड के डेवलपर्स क्योंकि सभी अनुकूलन यह अनुमति के इस चुना है। एडाप्टर व्यू के लिए बहुत सारे अनुकूलन getView विधि में नए बनाने के बजाय दृश्यों का पुन: उपयोग करके प्राप्त किया जाता है। यह कनवर्ट व्यू तर्क है जिसे आप getView विधि में देख सकते हैं। यदि कनवर्ट करें == नल, तो विधि को एक नया व्यू ऑब्जेक्ट बनाने की आवश्यकता होती है और उसे एक महंगी ऑपरेशन वापस कर दिया जाता है। यदि यह शून्य नहीं है, तो एडाप्टर दृश्य का पुन: उपयोग कर सकता है, बस उस ट्यूटोरियल उदाहरण में छवि को बदल रहा है।

19

डेटा को एक दृश्य में बाध्य करने के लिए एक एडाप्टर का उपयोग किया जाता है। AdapterView देखें:

एक AdapterView जिसका बच्चों को एक एडाप्टर द्वारा निर्धारित कर रहे हैं एक दृश्य है।

कई लेआउट विचारों GridView, ListView, और गैलरी की तरह AdapterView से निकाले जाते हैं।

बेशक, आप आम तौर पर AdapterView और Adapter का उपयोग नहीं करते हैं, बल्कि उनके उप-वर्गों में से किसी एक का उपयोग या प्राप्त करते हैं। एडाप्टर के उप-वर्ग अतिरिक्त कार्यक्षमता जोड़ सकते हैं जो आपको डेटा को देखने के लिए बाध्य करने के तरीके को बदल सकता है।

BaseAdapter एडाप्टर इंटरफ़ेस को लागू करने एडाप्टर को आसान बनाने के लिए एक सार आधार वर्ग है। आप अपना खुद का कार्यान्वयन कर सकते हैं, लेकिन ढांचा पहले से ही कुछ सुंदर लचीला एडाप्टर प्रदान करता है। कुछ लोकप्रिय एडेप्टर हैं:

ArrayAdapter,

  • एक दृश्य
  • ओवरराइड getView(), बढ़ पॉप्युलेट, और में दिए गए इंडेक्स के लिए एक कस्टम दृश्य वापस जाने के लिए करने के लिए डेटा की एक सरणी बांधता सरणी। getView() विधि में convertView पैरामीटर के माध्यम से एक अवसर पुन: उपयोग विचार शामिल हैं।

CursorAdapter,

  • एक दृश्य के लिए एक कर्सर (एक डेटाबेस कर्सर की तरह) से डेटा बांधता
  • सार तो आप इसे सीधे उपयोग नहीं करते हैं, एक उपवर्ग का उपयोग करें या निकाले जाते हैं अपनी खुद की
  • , को बढ़ाने के लिए पॉप्युलेट, और वर्तमान कर्सर स्थिति के लिए वांछित दृश्य लौट सकते हैं और सार विधि को लागू सार विधि newView() लागू 0,123,किसी मौजूदा दृश्य है कि पुन: उपयोग किया जा रहा है ..

SimpleCursorAdapter,

  • पॉप्युलेट करने के लिए CursorAdapter
  • का एक ठोस कार्यान्वयन यह एक पंक्ति लेआउट और कर्सर कॉलम की एक मानचित्रण ले जा सकते हैं पंक्ति लेआउट विजेट्स
  • टेक्स्ट और छवियों का समर्थन करता है, लेकिन setViewText औरका उपयोग करके अनुकूलित कर सकते हैं
  • अन्य प्रकारों का समर्थन कर सकता है और एक हुक के माध्यम से बाइंडिंग को कस्टमाइज़ कर सकता है: क्लाइंट SimpleCursorAdapter.ViewBinder इंटरफ़ेस को setViewValue() इंटरफ़ेस को किसी दिए गए पंक्ति (वर्तमान कर्सर स्थिति) और डेटा "कॉलम" के वांछित दृश्य को बढ़ाने, पॉप्युलेट करने और वापस करने के लिए लागू करते हैं। यह विधि केवल "विशेष" विचारों और बाइंडिंग को परिभाषित कर सकती है, लेकिन फिर भी "सामान्य" बाइंडिंग के लिए SimpleCursorAdapter के मानक व्यवहार को रोकती है।
संबंधित मुद्दे