2012-12-15 16 views
5

カスタム属性を使用して問題が発生しました。私はattr.xmlXmlPullParserExceptionをスローするカスタム属性を持つAndroid selector.xml

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

で定義されたカスタム属性を持っていると私は上記fav_iconとnot_fav_iconでテーマ

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

を持っている...

を助けてください私のイメージです。

トグルボタン用にセレクタ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> 

ここでは、セレクタを自分のトグルボタンに設定しています。

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

私は自分の活動にテーマを適用しています。しかし、私は以下のようにXml Parse Exceptionを取得しています。

によって引き起こさ:org.xmlpull.v1.XmlPullParserException:バイナリXMLファイルのライン#11:タグが定義する「描画可能」属性または子タグを必要とし、私はカスタム属性の使用と同じ方法をやっている

描画可能イメージを通常のボタンに設定して動作しています。しかし、カスタム属性がセレクタで定義されている場合、それは機能しません。

私に何かが不足している場合はお知らせください。

それは色の変化のためのように述べているでは、私はすでにこのリンク Android color selector doesn't work with custom attributes

をチェックしています。私の場合、彼らはdrawablesです。別の方法がある場合は、解決策を提案してください。

ありがとうございます。

+0

この問題の解決策をお探しですか? – Anderson

+0

私はこれのための任意の解決策を見つけられませんでした。だからセレクタ内のカスタム属性の代わりにdrawablesを使用しています。 – vijaykumarg

答えて

4

AndroidはLプレビューまでdrawable XMLでテーマ属性をサポートしていませんでした。 Lプレビューの前に、テーマの属性は無効な値として扱われ、型に応じてインフレーション例外がスローされるか、0/nullに解決されます。

関連する問題