जैसा कि प्रिया सिंघल ने उत्तर दिया, एंड्रॉइड स्टूडियो को सामान्य विशेषता नामों को अपने स्वयं के शैली के नाम से परिभाषित करने की आवश्यकता होती है। वे किसी भी अधिक मूल में नहीं हो सकते।
हालाँकि, कुछ अन्य बातों पर ध्यान देना चाहिए (इसीलिए मैं भी एक उत्तर जोड़ रहा हूँ):
- आम शैलियों को एक दृश्य के रूप में एक ही चीज़ का नाम देने की आवश्यकता नहीं है। ( यह इंगित करने के लिए इस उत्तर के लिए धन्यवाद ।)
- आपको माता-पिता के साथ विरासत का उपयोग करने की आवश्यकता नहीं है।
उदाहरण
यहां मैंने हाल ही में एक परियोजना में किया है जिसमें दो कस्टम विचार हैं जो दोनों समान विशेषताओं को साझा करते हैं। जब तक कस्टम दृश्य में अभी भी विशेषताओं के नाम हैं और इसमें शामिल नहीं हैं format
, तब भी मैं कोड से उन्हें सामान्य रूप से एक्सेस कर सकता हूं।
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- common attributes to all custom text based views -->
<declare-styleable name="TextAttributes">
<attr name="text" format="string"/>
<attr name="textSize" format="dimension"/>
<attr name="textColor" format="color"/>
<attr name="gravity">
<flag name="top" value="48" />
<flag name="center" value="17" />
<flag name="bottom" value="80" />
</attr>
</declare-styleable>
<!-- custom text views -->
<declare-styleable name="View1">
<attr name="text"/>
<attr name="textSize"/>
<attr name="textColor"/>
<attr name="gravity"/>
</declare-styleable>
<declare-styleable name="View2">
<attr name="text"/>
<attr name="textSize"/>
<attr name="textColor"/>
<attr name="gravity"/>
</declare-styleable>
</resources>
सुव्यवस्थित उदाहरण
वास्तव में, मुझे विशेषताओं को कस्टम नाम के तहत रखने की आवश्यकता नहीं है। जब तक मैं उन्हें परिभाषित करता हूं (उन्हें format
) कम से कम एक कस्टम दृश्य के लिए, मैं उन्हें कहीं भी (बिना format
) उपयोग कर सकता हूं । तो यह भी काम करता है (और क्लीनर दिखता है):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="View1">
<attr name="text" format="string"/>
<attr name="textSize" format="dimension"/>
<attr name="textColor" format="color"/>
<attr name="gravity">
<flag name="top" value="48" />
<flag name="center" value="17" />
<flag name="bottom" value="80" />
</attr>
</declare-styleable>
<declare-styleable name="View2">
<attr name="text"/>
<attr name="textSize"/>
<attr name="textColor"/>
<attr name="gravity"/>
</declare-styleable>
</resources>
एक बड़ी परियोजना के लिए, हालांकि, यह गड़बड़ हो सकता है और उन्हें एक ही स्थान पर शीर्ष पर परिभाषित करना बेहतर हो सकता है (जैसा कि यहां अनुशंसित है )।
myattr1
स्ट्रिंगMyView1
और पूर्णांक में स्ट्रिंग होती हैMyView2
?