带有自定义属性的Android selector.xml抛出XmlPullParserException

vij*_*arg 5 android android-layout android-xml android-theme

我使用自定义属性遇到了问题.请帮忙..

我在attr.xml中定义了自定义属性

<attr format="reference" name="btnPressed" />
<attr format="reference" name="btnNormal" />
Run Code Online (Sandbox Code Playgroud)

我有一个主题

<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>
Run Code Online (Sandbox Code Playgroud)

在上面的fav_icon和not_fav_icon是我的图像.

我有一个为切换按钮定义的选择器favorite_btn.xml.

<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>
Run Code Online (Sandbox Code Playgroud)

现在我将选择器设置为我的切换按钮.

        <ToggleButton
            android:id="@+id/station_fav_star"
            android:layout_width="42dip"
            android:layout_height="42dip"
            android:background="@drawable/favorite_btn"
            android:textOff=""
            android:textOn="" />
Run Code Online (Sandbox Code Playgroud)

我正在将这个主题应用到我的活动中.但我正在获得Xml Parse Exception,如下所述.

引起:org.xmlpull.v1.XmlPullParserException:二进制XML文件行#11:标记需要一个'drawable'属性或定义drawable的子标记

我正在使用相同的方法使用自定义属性将图像设置为普通按钮,它正在工作.但是当在选择器中定义自定义属性时,它不起作用.

如果我遗失任何东西,请告诉我.

我已经检查过此链接 Android颜色选择器不适用于自定义属性

因为它表示颜色变化.就我而言,它们是可绘制的.如果还有其他方法,请提出解决方案.

提前致谢..

ala*_*anv 5

在 L 预览之前,Android 不支持可绘制 XML 中的主题属性。在 L 预览之前,任何主题属性都将被视为无效值并根据类型抛出膨胀异常或解析为 0 / null。