Android पर ObtainStyledAttributes आयात करना

एंड्रॉइड फ्रेमवर्क मोबाइल सॉफ्टवेयर बनाने के लिए कई पूर्वनिर्धारित थीम और इंटरैक्टिव ग्राफिकल ऑब्जेक्ट या विजेट प्रदान करता है। अक्सर आप एक विशिष्ट विजेट को एक अद्वितीय रूप और अनुभव के साथ परिभाषित करना चाह सकते हैं। एंड्रॉइड एप्लिकेशन प्रोग्रामिंग इंटरफ़ेस या एपीआई के पैकेजों में विधायक परिभाषाएं होती हैं, जिसमें विधायक विधियां होती हैं, जिन्हें आप एक नई शैली देने के लिए ओवरराइड कर सकते हैं। "Context.obtainStyledAttributes" विधि आपके जावा कोड में एक ऐसी शैली का आयात करती है जिसे आप एक अलग XML फ़ाइल में सांख्यिकीय रूप से परिभाषित करते हैं। मॉडल, व्यू और एडेप्टर कोड का यह पृथक्करण आपके एंड्रॉइड प्रोजेक्ट को पढ़ने और डीबग करने में आसान बनाता है।

घोषित-Styleable

एंड्रॉइड डेवलपर्स वेबसाइट बाहरी एक्सएमएल फ़ाइल में आपके स्टाइल संसाधनों को परिभाषित करने की सिफारिश करती है ताकि आपके प्रोजेक्ट को अपने और अन्य प्रोग्रामर के लिए बनाए रखा जा सके। एक्सटीरियर एक्सएमएल में सेट की गई "डिक्लेयर-स्टाइलेबल" विशेषता को परिभाषित करना भी आपके विजेट के कंस्ट्रक्टर से जावा कोड निकालने की तुलना में किसी अन्य प्रोजेक्ट में एक विषय को पुन: उपयोग करना सरल बनाता है। एक्लिप्स कार्यक्षेत्र आपके प्रोजेक्ट के "जीन" फ़ोल्डर में स्वचालित रूप से उत्पन्न "आर" वर्ग के माध्यम से आपकी परियोजना के लिए "घोषणा-योग्य" विशेषता को उपलब्ध कराता है। XML पैरेंट नोड के अंदर की विशेषताएं आपकी थीम की शैली के तत्वों को परिभाषित करती हैं, जैसे कि रंग, आकार और फ़ॉन्ट।

विजेट परिभाषा;

जब आप किसी दृश्य या विजेट वर्ग का विस्तार करते हैं, तो आप निम्न विधि हस्ताक्षर के साथ व्यू कंस्ट्रक्टर को ओवरराइड करते समय "getStyledAttributes" कहते हैं:

दृश्य (संदर्भ संदर्भ, गुणनिष्ठ गुण)

एंड्रॉइड फ्रेमवर्क स्वचालित रूप से आपके निर्माता के लिए "अटार्स" तर्क को पारित करता है, और आप इसका उपयोग टाइप किए गए ऑब्जेक्ट को टाइप करने के लिए करते हैं। यह टाइपरएड्रे ऑब्जेक्ट आपके बाहरी "घोषित-शैली-योग्य" सेट से विशेषताओं को रखता है, और आप उन्हें निम्न जैसे कोड की एक पंक्ति के साथ आयात करते हैं:

TypedArray yourStyles = reference.obtainStyledAttributes (अटार्स, R.styleable.your_xml_style);

TypedArray

आपके विशेषता सेट से शैली के तत्व उस क्रम में संग्रहीत किए जाते हैं जिसे आपने XML में परिभाषित करने के लिए उपयोग किया था। आप किसी विशेष शैली की वस्तु को पूर्वनिर्धारित एक्सेसर विधि के साथ TypedArray से पुनः प्राप्त करते हैं। उदाहरण के लिए, "घोषित-शैली-योग्य" से एक स्ट्रिंग ऑब्जेक्ट तक पहुंचने के लिए, आप निम्न की तरह कोड की एक पंक्ति का उपयोग करते हैं:

स्ट्रिंग yourString = yourStyles.getString (R.styleable.your_xml_style_ring);

फिर आप अपने विजेट के निर्माता में स्ट्रिंग को एक बटन या लेबल में जोड़ सकते हैं। वही प्रक्रिया आपके कस्टम थीम के अन्य गुणों पर लागू होती है।

लेआउट XML

XML में एक शैली और जावा में एक कस्टम विजेट को परिभाषित करने के बाद, आप लेआउट को परिभाषित करने के लिए XML संपादक पर लौट आएंगे। एक्लिप्स कार्यक्षेत्र इस लेआउट XML फ़ाइल को आपके एंड्रॉइड प्रोजेक्ट में गतिविधि कक्षाओं के लिए उपलब्ध करता है। अलग-अलग स्थानों में परिभाषित थीम और विजेट वर्ग के साथ, लेआउट फ़ाइल की जरूरत की एकमात्र जानकारी "आईडी, " आयाम और विजेट की नियुक्ति है। फिर, एक गतिविधि परिभाषा में, आप XML लेआउट को इस तरह के कोड के साथ दृश्य में हुक करते हैं:

setContentView (R.layout.main);

लेआउट फ़ाइल आपकी विजेट परिभाषा का उपयोग करती है, जो बदले में आपकी शैली परिभाषा का उपयोग करती है, इसलिए आपकी गतिविधि को उनके बारे में जानने की आवश्यकता नहीं है।

अनुशंसित