Botón personalizado de Android; cambiar el color del texto

Hice un botón que cambia el fondo dibujable en diferentes estados, de esta manera:

       

El problema aquí es que también estoy tratando de cambiar el textColor como hago con el dibujable, pero no puedo. Ya probé con android: textColor y android: color pero el primero no funciona mientras los segundos cambian mi fondo.

El siguiente código es parte de mi diseño. En cuanto al color del texto, solo funciona para el color de texto de estado normal, por lo que no se cambia al blanco mientras se presiona

 

Alguien tiene una pista?

Cree un color con estado para su botón, tal como lo hizo para el fondo, por ejemplo:

           

Coloque el xml en un archivo en la carpeta res / drawable, es decir, res / drawable / button_text_color.xml. Luego simplemente establece el dibujable como color de texto:

 android:textColor="@drawable/button_text_color" 

Otra forma de hacerlo es en su clase:

 import android.graphics.Color; // add to top of class Button btn = (Button)findViewById(R.id.btn); // set button text colour to be blue btn.setTextColor(Color.parseColor("blue")); // set button text colour to be red btn.setTextColor(Color.parseColor("#FF0000")); // set button text color to be a color from your resources (could be strings.xml) btn.setTextColor(getResources().getColor(R.color.yourColor)); // set button background colour to be green btn.setBackgroundColor(Color.GREEN); 

ok muy simple primero ve a 1. res-valuse y abre colors.xml 2. copia 1 del texto definido su por ejemplo # FF4081 y cambia el nombre por ejemplo cambié a blanco y cambio su valor por ejemplo cambié a #FFFFFF para valor blanco como este

 #FFFFFF 

luego dentro de tu botón agrega esta línea

  b3.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.White)); 

ok b3 es el nombre de mi botón, así que cambié el nombre de tu botón; todos los demás serán iguales si usas el color blanco si cambias de color diferente, luego cambias el color al nombre de tu color, pero primero debes definir ese color en colores. xml como he explicado en pont 2

Cambiar el color del texto del botón

Porque este método ahora está en desuso

 button.setTextColor(getResources().getColor(R.color.your_color)); 

Yo uso lo siguiente:

 button.setTextColor(ContextCompat.getColor(mContext, R.color.your_color));