2013-04-11 22 views
32

Desidero utilizzare componenti personalizzati nel mio progetto e voglio aggiungerlo agli attributi enum come di seguito, come posso farlo?Utilizzo di enum come attributi XML personalizzati

<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> 

Grazie!

+1

controlla questo http://stackoverflow.com/a/15231645/1329126 –

+0

Grazie è una risposta accettabile! se lo scrivi come risposta, posso contrassegnarlo come accettato. – Talha

risposta

54

Es:

<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> 

Usa come questo:

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

Riferimento

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

+0

Come ottengo questo nella mia vista personalizzata? –

+0

@NeonWarge Un po 'tardi lo so, ma per il futuro ho aggiunto un caso d'uso –

2

dell'Ordine all'interno delle materie XML, almeno di eclissare. Definisci il tuo enum sopra (o dentro) il tuo dichiarare-stilizzabile ... non sotto.

<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> 

Ho avuto un enum molto lungo quindi l'ho inserito alla fine del mio XML per migliorare la leggibilità. Analizza correttamente ma rifiuta i valori in modalità Progettazione.

Problemi correlati