TextColor кнопки не изменится в Android

Я хочу изменить цвет текста моей кнопки при изменении состояния кнопки. Например, когда кнопка отключена, я хочу, чтобы цвет был серым, когда она включена, я хочу, чтобы она была белой и так далее. Итак, чтобы добиться этого, я сделал это в своем файле styles.xml:

res/drawable/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>

Я определил поведение кнопки в зависимости от ее состояний в XML-файле ресурсов shadow_button. Я решил сделать новый, чтобы изменить цвет текста в зависимости от состояния, как это было предложено в этот пост:

res/drawable/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="white" на кнопке в действии, которое я тестирую вышеприведенный код. Я удалил этот тег, и все заработало нормально.


person Yulian    schedule 18.08.2015    source источник
comment
У вас есть другие styles.xml файлы?? Этот код работает нормально.   -  person dieter_h    schedule 18.08.2015
comment
Что ты имеешь в виду здесь? Кнопка отключена, значит некликабельный обряд!?   -  person Rubanraj Ravichandran    schedule 18.08.2015
comment
Может быть опечатка, но переместите файл styles.xml в res/values/   -  person MrJM    schedule 18.08.2015
comment
Извините, ребята, оказалось, что я оставил textColor=white на кнопке в действии, которое я тестирую вышеприведенный код. Я удалил этот тег, и все заработало нормально.   -  person Yulian    schedule 18.08.2015


Ответы (1)


Может быть, вы устанавливаете подсказку кнопки, а не текст? потому что цвет текста применяется только к заданному тексту, а не к подсказке, просто проверка

person blackHawk    schedule 27.02.2018