我想在按钮状态发生变化时更改按钮的文字颜色。例如,当按钮被禁用时,我希望颜色为灰色,启用时,我希望它是白色等等。因此,为了实现这一点,我在styles.xml文件中执行了此操作:
RES /抽拉/ styles.xml
<style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
..
<item name="android:buttonStyle">@style/AppTheme.Button</item>
..
</style>
<style name="AppTheme.Button" parent="android:Widget.Button">
<item name="android:background">@drawable/shadow_button</item>
<item name="android:textColor">@drawable/shadow_button_text</item>
...
</style>
我根据shadow_button资源XML文件中的状态定义了按钮的行为。根据{{3}}的建议,我决定根据状态改变文字颜色:
RES /抽拉/ shadow_button_text.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="true" android:color="@color/darkRed" />
<item android:state_pressed="true" android:color="@color/darkRed" />
<item android:state_enabled="false" android:color="@color/darkGrey" />
<item android:color="@color/darkRed" />
</selector>
不幸的是,没有任何变化 - 颜色的文字保持白色。我做错了什么?
修改 对不起,伙计们,事实证明我已经离开了textColor =&#34; white&#34;在我正在测试上述代码的活动中的按钮上。我删除了这个标签,一切正常。