25

カスタム ToggleButton を作成するために、次の新しいスタイルを定義しました/res/values/styles.xml

<style name="myToggleButton">
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textColor">#000000</item>
    <item name="android:background">@drawable/my_toggle_button</item>
</style>

次に、セレクターを使用して、ボタンの状態がどのように表示されるかを指定します/res/drawable/my_toggle_button.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true">
        <shape>
            [...]
        </shape>
    </item>
    <item android:state_checked="false"
        <shape>
            [...]
        </shape>
    </item>
</selector>

この設定を変更して、状態が変化したときにボタンのテキストの色を切り替えるにはどうすればよいですか?

4

1 に答える 1

81

希望するテキストの色について同様の状態リストを作成し、 に配置しますres/color

res/color/toggle_color.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:color="#070" />
    <!-- Default State -->
    <item android:color="#A00" />
</selector>

次に、このリソースをボタンのテキストの色として設定します。

<item name="android:textColor">@color/toggle_color</item>

PS、セレクターの最後の項目には、上記の状態の逆で定義するのではなく、状態フラグを付けない (つまり、既定の状態) ことをお勧めします。

于 2012-12-29T04:20:42.167 に答える