Изменить цвет текста кнопки при нажатии

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

Ответ 1

См. раздел Список состояний в этом фрагменте документации... Ресурсы для рисования.

Вы можете определить два разных файла Button xml для прозрачного состояния "по умолчанию", а другое - кнопкой "Красный" для вашего "нажатого" состояния. Затем вы определяете selector, который переключает доступные ресурсы в разных состояниях.

РЕДАКТИРОВАТЬ: согласно принятому комментарию ресурс списка состояний цвета, вероятно, более подходит для изменения цвета, а не для самого выделенного.

Ответ 2

Да, вы можете сделать это так:

Макет/main_layout.xml:

.....
    <Button
      android:id="@+id/button"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="bonjour !"
      android:textColor="@color/button_text_color"
    />
.....

цвет/button_text_color.xml:

   <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:color="#c0c0c0" android:state_pressed="true"/>
     <item android:color="#ffffff"/>
   </selector>

Ответ 3

Вы должны сделать это в своем коде. Попробуйте следующее:

    mBtn = ((Button) findViewById( R.id.button1 ));
    mBtn.setOnClickListener( new OnClickListener() {

        @Override
        public void onClick(View v) {
            mBtn.setTextColor( Color.RED );
        }
    });

Declare:

private Button mBtn;