2012-12-15 12 views
5

Ho incontrato un problema utilizzando attributi personalizzati. si prega di aiutare ..Selector.xml Android con attributi personalizzati di lancio XmlPullParserException

ho gli attributi personalizzati definiti in attr.xml

<attr format="reference" name="btnPressed" /> 
<attr format="reference" name="btnNormal" /> 

e ho avuto un tema

<style name="MyTheme" parent="@style/Theme.Sherlock.Light.NoActionBar"> 
    <item name="btnPressed">@drawable/fav_icon</item> 
    <item name="btnNormal">@drawable/not_fav_icon</item> 
</style> 

In sopra fav_icon e not_fav_icon sono le mie immagini

Ho un selettore preferito_btn.xml definito per pulsante di attivazione/disattivazione.

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_checked="true" android:drawable="?attr/btnPressed"/> 
    <item android:state_checked="false" android:drawable="?attr/btnNormal"/> 
    <item android:drawable="?attr/btnNormal"/> 
</selector> 

Ora sto impostando il selettore sul mio interruttore.

 <ToggleButton 
      android:id="@+id/station_fav_star" 
      android:layout_width="42dip" 
      android:layout_height="42dip" 
      android:background="@drawable/favorite_btn" 
      android:textOff="" 
      android:textOn="" /> 

E sto applicando il tema alla mia attività. Ma sto ricevendo Xml Parse Exception come indicato di seguito.

Causato da: org.xmlpull.v1.XmlPullParserException: linea di file XML Binary # 11: tag richiede un tag 'disegnabile' attributo o bambino la definizione di un disegnabile

sto facendo lo stesso metodo di usare gli attributi personalizzati per impostando le immagini sui pulsanti normali e sta funzionando. Ma quando gli attributi personalizzati sono definiti nei selettori, non funziona.

Per favore fatemi sapere se mi manca qualcosa.

Ho già controllato questo link Android color selector doesn't work with custom attributes

in quanto afferma per cambiamenti di colore. Nel mio caso sono drawable. Se c'è un altro modo, suggerisci la soluzione.

Grazie in anticipo ..

+0

Hai trovato una soluzione per questo problema? – Anderson

+0

Non ho trovato alcuna soluzione per questo. Quindi sto usando i drawable invece degli attributi personalizzati all'interno del selettore. – vijaykumarg

risposta

4

Android non supporta gli attributi tema in XML drawable fino L anteprima. Prima dell'anteprima di L, tutti gli attributi di tema saranno considerati come valori non validi e genereranno un'eccezione di inflazione o verranno risolti a 0/null a seconda del tipo.

Problemi correlati