2013-04-11 8 views
32

मैं अपने प्रोजेक्ट में कस्टम घटकों का उपयोग करना चाहता हूं और मैं इसे नीचे की तरह एनम विशेषताओं में जोड़ना चाहता हूं, मैं यह कैसे कर सकता हूं?कस्टम एक्सएमएल विशेषताओं के रूप में एनम्स का उपयोग

<com.abb.abbcustomcompanents.buttons.AbbButton 
     android:id="@+id/abbBtn1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     app:Type="How can i use enum here" 
     /> 

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <declare-styleable name="abbButton"> 
     <attr name="Type" format="enum"/> 
     <attr name="onAction" format="string"/> 
    </declare-styleable> 
</resources> 

धन्यवाद!

+1

यह जांचें http://stackoverflow.com/a/15231645/1329126 –

+0

धन्यवाद यह स्वीकार्य उत्तर है! यदि आप इसे एक उत्तर के रूप में लिखते हैं तो मैं इसे स्वीकार किए जाने के रूप में चिह्नित कर सकता हूं। – Talha

उत्तर

54

उदाहरण के लिए: इस तरह

<attr name="myProperty" format="enum"> 
     <enum name="None" value="0"/> 
     <enum name="One" value="1"/> 
     <enum name="Two" value="2"/> 
     <enum name="Three" value="3"/> 
</attr> 

उपयोग:

<YourCustomView 
    ... 
    app:myProperty="One"/> 

संदर्भ एक्सएमएल मामलों अंदर

https://stackoverflow.com/a/15231645/1329126

+0

मैं इसे अपने कस्टम व्यू पर कैसे प्राप्त करूं? –

+0

@NeonWarge थोड़ा देर से मुझे पता है लेकिन भविष्य के लिए मैंने एक उपयोग केस जोड़ा है –

2

आदेश, कम से कम ग्रहण करने के लिए। अपने घोषित करें (या अंदर) अपने घोषित-शैली योग्य ... नीचे नहीं।

<attr name="quality"> 
    <enum name="Good" value="1" /> 
    <enum name="Better" value="2" /> 
    <enum name="Best" value="3" /> 
</attr> 

<declare-styleable name="SquareView"> 
    <attr name="quality" /> 
</declare-styleable> 

<declare-styleable name="CircleView"> 
    <attr name="quality" /> 
</declare-styleable> 

मेरे पास बहुत लंबा enum था इसलिए मैंने इसे अपने एक्सएमएल के अंत में पठनीयता में सुधार के लिए रखा। यह सही ढंग से विश्लेषण करेगा लेकिन डिजाइन मोड में मूल्यों को अस्वीकार करेगा।

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