एंड्रॉइड में एडेप्टर की भूमिका क्या है?


123

मैं जानना चाहता हूं कि कब , कहां और कैसे एंड्रॉइड के संदर्भ में एडेप्टर का उपयोग किया जाता है।

एंड्रॉइड के डेवलपर प्रलेखन से जानकारी मेरे लिए अपर्याप्त थी और मैं एक अधिक विस्तृत विश्लेषण प्राप्त करना चाहता हूं।

जवाबों:


29

मान लें कि आप अपने एंड्रॉइड ऐप में एक सूची प्रदर्शित करना चाहते हैं। इसके लिए आप ListViewएंड्रायड द्वारा दिए गए का उपयोग करेंगे । ListViewवास्तव में कोई डेटा स्वयं नहीं है। यह डेटा के बिना सिर्फ एक यूआई तत्व है। आप अपने को आबाद कर सकते हैंListView एंड्रॉइड एडेप्टर का उपयोग करके एस ।

Adapterएक इंटरफ़ेस है जिसका कार्यान्वयन डेटा प्रदान करता है और उस डेटा के प्रदर्शन को नियंत्रित करता है। ListViewस्वयं के एडेप्टर जो पूरी तरह से ListViewप्रदर्शन को नियंत्रित करते हैं। इसलिए एडेप्टर सूची में प्रदर्शित सामग्री के साथ-साथ इसे कैसे प्रदर्शित किया जाए, इसे नियंत्रित करते हैं।

Adapterइंटरफ़ेस करने के लिए डेटा संवाद करने के लिए विभिन्न तरीके शामिल हैं ListView। आप लागू करके खरोंच से अपना स्वयं का एडाप्टर बना सकते हैं BaseAdapter

public class ArrayAdapter<T> extends BaseAdapter implements Filterable {

// One of the constructors
public ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects) {
    init(context, resource, textViewResourceId, Arrays.asList(objects));
}

void manyMoreMethods(){} 

}

एक एडाप्टर को परिभाषित करने देता है:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
   android.R.layout.simple_list_item_1, android.R.id.text1, values);
  • पहला पैरामीटर: संदर्भ
  • दूसरा पैरामीटर: पंक्ति के लिए लेआउट
  • तीसरा पैरामीटर: आईडी TextViewजिसमें से डेटा लिखा गया है
  • चौथा पैरामीटर: डेटा की सरणी

45

एंड्रॉइड में अच्छी तरह से एडेप्टर मूल रूप से यूआई घटकों और डेटा स्रोत के बीच एक पुल होते हैं जो यूआई घटक में डेटा भरते हैं

उदाहरण के लिए, सूची (UI घटक) किसी डेटा स्रोत सरणी से, सूची एडाप्टर का उपयोग करके पॉपुलेटेड हो जाता है।


21
यह वही जानकारी है जो मैं प्रलेखन से प्राप्त कर सकता हूं। लेकिन मैं एक विस्तृत विवरण चाहता हूं
रोबिन

25

मैं अपनी समझ साझा करना चाहूंगा।

यह डेटा स्रोत और आपके लेआउट (सबसे शायद लिस्ट व्यू) के बीच एक इंटरफ़ेस है।

एक सादृश्य

चलो एक मोबाइल चार्जर, या बल्कि एक यूएसबी केबल का उदाहरण लेते हैं। तार को एडाप्टर के रूप में माना जा सकता है, जबकि डेटा स्रोत और लेआउट को क्रमशः सॉकेट (प्लग-इन बिंदु) और यूएसबी पोर्ट (चार्जिंग पॉइंट) के रूप में समझा जा सकता है।

मोबाइल चार्जिंग के मामले में, पावर का स्रोत अलग हो सकता है, जैसे पावर बैंक, सॉकेट या लैपटॉप से ​​चार्ज करना। एंड्रॉइड में उपयोग किए जाने वाले एडेप्टर के लिए भी यही स्थिति है। आवेदन की आवश्यकता के आधार पर डेटा स्रोत को बदला जा सकता है।

संक्षेप में, एंड्रॉइड में एक एडाप्टर डेटा को एक स्रोत (जैसे ArrayList<>) से ले जाता है और इसे एक लेआउट (.xml फ़ाइल) में वितरित करता है।


2
अब तक का सबसे अच्छा उदाहरण: डी गुड जॉब!
दक्ष गर्गस

8

एंड्रॉइड में एडेप्टर एडाप्टर दृश्य (जैसे ListView) और उस दृश्य के अंतर्निहित डेटा के बीच एक पुल है । कल्पना कीजिए कि दुनिया बिना एडाप्टरों के क्या रही होगी!

उदाहरण

  • एक दृश्य जो लंबवत स्क्रॉलिंग सूची में आइटम दिखाता है। आइटम ListAdapterइस दृश्य से संबद्ध हैं।

  • ListAdapterसूची के अलग-अलग पंक्तियों के लिए लेआउट को परिभाषित करता है और करने के लिए डेटा प्रदान करता है ListViewके माध्यम से setAdapter()करने की विधि ListView

  • एंड्रॉइड कई मानक एडेप्टर प्रदान करता है; सबसे महत्वपूर्ण हैं ArrayAdapterऔर CursorAdapter

  • ArrayAdapter सरणियों या सूचियों के आधार पर डेटा को संभाल सकता है।

  • SimpleCursorAdapter डेटाबेस से संबंधित डेटा को संभाल सकता है।

4

एडेप्टर मूल रूप से सामग्री वितरित करने के लिए उपयोग किया जाता है। संभवतः आपके पास प्रत्येक एप्लिकेशन में मौजूद एक एडाप्टर CursorAdapter है जो आपको डेटाबेस क्वेरी से कर्सर द्वारा दी गई सामग्री को वितरित करने में सक्षम बनाता है। एक सूची दृश्य में लगभग हमेशा किसी प्रकार का एडाप्टर होता है।


7
यह वही जानकारी है जो मैं प्रलेखन से प्राप्त कर सकता हूं। लेकिन मैं एक विस्तृत विवरण चाहता हूं
रोबिन

@ रॉबिन: आप अपने प्रश्नों की 10 साल की सालगिरह का जश्न "उत्तर" में से एक को स्वीकार करके क्यों नहीं मनाते। व्यक्तिगत रूप से: 1) मुझे आपका प्रश्न मूल्यवान लगा (यह है कि मैं यहाँ कैसे घाव कर रहा हूँ), 2) मुझे इनमें से कई उत्तर मददगार लगे (इनमें से एक सहित) ... और 3) मेरे पास कोई सुराग नहीं है कि आपका क्या मतलब है " एक अधिक विस्तृत विवरण "। शायद ऐसा इसलिए है क्योंकि मुझे "क्यों" में अधिक दिलचस्पी है (जैसा कि ऊपर बताया गया है) ।; मैं "वन" (वॉरेनफ्रैथ की प्रतिक्रिया की तरह) "विस्तृत पेड़" ( जो प्रलेखन से प्राप्त कर सकता हूं) की तुलना में अधिक दिलचस्पी रखता हूं । कृपया आगे
बढ़ें

4

एक एडेप्टर एक पुल के रूप में कार्य करता है AdapterView उस दृश्य के लिए अंतर्निहित डेटा के । एडेप्टर डेटा आइटम तक पहुंच प्रदान करता है और डेटा सेट में प्रत्येक आइटम के लिए एक दृश्य बनाने के लिए जिम्मेदार है।

एडेप्टर Viewकिसी प्रकार के डेटा स्रोत से जुड़ने का एक स्मार्ट तरीका है । आमतौर पर, आपका दृष्टिकोण एक होगा ListViewऔर डेटा Cursorया के रूप में आएगा Array। इसलिए एडाप्टर्स CursorAdapterया के उपवर्गों के रूप में आते हैं ArrayAdapter


2

एक एडेप्टर डेटा मॉडल का प्रबंधन करता है और इसे सूची दृश्य में अलग-अलग पंक्तियों के लिए एडाप्ट करता है। यह BaseAdapterवर्ग का विस्तार करता है ।

सूची दृश्य की प्रत्येक पंक्ति में एक लेआउट होता है, जो जितना चाहें उतना जटिल हो सकता है। सूची दृश्य की एक विशिष्ट रेखा में बाईं ओर एक छवि है और बीच में दो पाठ लाइनें हैं।


0

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


0

पहले से ही कई उत्तर दिए गए हैं, लेकिन मैं एक अलग उत्तर देना चाहता हूं।

एडेप्टर का मतलब है कि आप इसका ब्रिज प्रोवाइडर कर सकते हैं ।

एडेप्टर डेटा के एक सेट और एडेप्टर व्यू के बीच की कड़ी है जो डेटा प्रदर्शित करता है।


0

अंत में, एक रिपोर्ट करने के लिए एडेप्टर बहुत उपयोगी होते हैं। यदि कोई कुछ जानकारी की रिपोर्ट दिखाना चाहता है, तो कोई इस उपकरण का उपयोग दृश्य पर डेटा दिखाने के लिए कर सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.