Android:切换ToggleButton的文本颜色

要创build一个自定义的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> 

然后使用select器指定button的状态在/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> 

如何修改此设置以在状态更改时切换button的文本颜色?

Solutions Collecting From Web of "Android:切换ToggleButton的文本颜色"

为您想要的文字颜色创build一个类似的状态列表,并将其放在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> 

然后将此资源设置为button的文本颜色:

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

PS,最好是让select器中的最后一项没有附加任何状态标志(即默认状态),而不是用上述状态的反向来定义它。