Как изменить textColor кнопки из XML в Android?

Я использую selector для изменения фона кнопки в разных состояниях (сфокусирован, нажат, нормальный). Есть ли способ изменить цвет текста? Я хочу предоставить различные цвета текста для различных состояний кнопок, но я хочу сделать это из файла xml. Это возможно?


person Arnab Chakraborty    schedule 28.07.2011    source источник


Ответы (4)


Да, это может быть сделано. Вы просто делаете то же самое, что и для кнопки. Затем назначьте его android:textColor="@drawable/yourselector"

person Nikola Despotoski    schedule 28.07.2011
comment
Это хорошая идея. Я попробую это. - person Arnab Chakraborty; 28.07.2011
comment
Фантастический! Я бы никогда не подумал об этом! - person erdomester; 03.04.2012
comment
для меня это дает android.content.res.Resources$NotFoundException: File res/drawable-hdpi/btn_text.xml из идентификатора ресурса списка состояний цвета # 0x7f020001 .. любое предложение? - person CoDe; 11.07.2014

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_pressed="true"
           android:color="#000000" /> <!-- pressed -->
     <item android:state_focused="true"
           android:color="#000000" /> <!-- focused -->
     <item android:color="#FFFFFF" /> <!-- default -->
</selector>

Попробуйте совместить это с атрибутом android:drawable.

person Ragunath Jawahar    schedule 28.07.2011

Если это программно, вы можете использовать:

Button button = findViewById(R.id.yourbutton);
button.setTextColor(Color.yourcolor);

В xml будет то же самое.

person Androider    schedule 28.07.2011

Используйте android:color="#ff0000" в селекторе для focused и другой цвет для состояния default. Затем в xml кнопки android:textColor="@drawable/yourselector"

person ShineDown    schedule 28.07.2011