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