2012-12-15 5 views
5

Ich habe ein Problem mit benutzerdefinierten Attributen. bitte helfen ..Android selector.xml mit benutzerdefinierten Attributen werfen XmlPullParserException

Ich habe definiert benutzerdefinierte Attribute in attr.xml

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

und ich habe ein Thema

<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 oben fav_icon und not_fav_icon bekam sind meine Bilder.

Ich habe einen Selektor favorite_btn.xml für die Umschaltfläche definiert.

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

Jetzt stelle ich den Selektor auf meine Umschalttaste.

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

Und ich bin das Thema auf meine Tätigkeit anwenden. Aber ich bekomme Xml Parse Exception wie unten erwähnt.

Verursacht durch: org.xmlpull.v1.XmlPullParserException: Binary XML-Datei Zeile # 11: Tag erfordert einen ‚ziehbar‘ -Attribut oder Kind-Tag definiert ein ziehbar

ich die gleiche Methode tue für die Verwendung benutzerdefinierter Attribute Stellen Sie die Bilder auf normale Tasten und es funktioniert. Aber wenn benutzerdefinierte Attribute in Selektoren definiert sind, funktioniert es nicht.

Bitte lassen Sie mich wissen, wenn ich etwas vermisse.

Ich habe überprüft bereits auf diesen Link Android color selector doesn't work with custom attributes

, dass es für Farbänderungen erklärt. In meinem Fall sind sie drawables. Wenn es einen anderen Weg gibt, schlagen Sie bitte die Lösung vor.

Vielen Dank im Voraus ..

+0

Haben Sie eine Lösung für dieses Problem gefunden? – Anderson

+0

Ich habe dafür keine Lösung gefunden. Daher verwende ich Zeichen anstelle von benutzerdefinierten Attributen in der Auswahl. – vijaykumarg

Antwort

4

Android unterstützt nicht Thema bis L Vorschau in ziehbar XML-Attribute. Vor der L-Vorschau werden alle Designattribute als ungültige Werte behandelt und je nach Typ eine Inflationsausnahme oder -auflösung auf 0/null gesetzt.