2012-12-15 12 views
5

Wystąpił problem z wykorzystaniem niestandardowych atrybutów. proszę o pomoc ..Android selektor.xml z niestandardowymi atrybutami wyrzucającymi XmlPullParserException

Mam atrybuty niestandardowe zdefiniowane w attr.xml

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

i mam motyw

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

podano fav_icon i not_fav_icon są moje obrazy.

Mam selektor favorite_btn.xml zdefiniowany dla przycisku przełączania.

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

Teraz ustawiam przełącznik w moim przełączniku.

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

I stosuję ten temat w mojej działalności. Ale otrzymuję wyjątek Parse Xml, jak wspomniano poniżej.

Spowodowany przez: org.xmlpull.v1.XmlPullParserException: linia binarny plik XML # 11: tag wymaga „rozciągliwej” atrybutu lub dziecko znacznik określający rozciągliwej

robię ten sam sposób przy użyciu niestandardowych atrybutów ustawienie obrazów na normalne przyciski i działa. Ale gdy niestandardowe atrybuty są zdefiniowane w selektorach, to nie działa.

Proszę dać mi znać, jeśli czegoś brakuje.

już sprawdzone link Android color selector doesn't work with custom attributes

tym, że członkowskie w odniesieniu do zmian kolorystycznych. W moim przypadku są to rysunki. Jeśli jest jakikolwiek inny sposób, zaproponuj rozwiązanie.

góry dzięki ..

+0

Czy znalazłeś rozwiązanie tego problemu? – Anderson

+0

Nie znalazłem żadnego rozwiązania dla tego. Używam więc rysunków zamiast niestandardowych atrybutów w selektorze. – vijaykumarg

Odpowiedz

4

Android nie obsługują atrybutów tematem rozciągliwej XML aż podglądu L. Przed podglądem L wszelkie atrybuty kompozycji będą traktowane jako nieprawidłowe wartości i generują wyjątek inflacji lub rozwiążą wartość 0/null w zależności od typu.

Powiązane problemy