studio - seleccionar texto edittext android
setHintTextColor() en EditText (7)
Tengo una Vista en la que hay dos cuadros de texto, y el usuario puede seleccionar el color del texto de otra vista en la misma pantalla (a través del cuadro de diálogo).
Entonces, cuando el usuario cambia de color a través del cuadro de diálogo, estoy cambiando el color del texto de EditText
y su pista. Pero cuando hay texto disponible en EditText
luego de que ese usuario selecciona otro color, ese texto viene en ese color. Pero si elimino todo ese texto, entonces el color de HintText es el del color anterior.
Por ejemplo, actualmente si tengo el color rojo en el cuadro de texto y el usuario selecciona el color verde para que el texto esté allí en color verde. Pero si elimino ese texto, el texto de sugerencia aparecerá en rojo incluso si cambio el color de la sugerencia en el código. Este problema solo aparece cuando hay texto allí. si está en blanco y hay texto de sugerencia, entonces el problema no se presenta.
Colores predeterminados:
android:textColorHint="@android:color/holo_blue_dark"
Para el código de color:
android:textColorHint="#33b5e5"
Dentro de Layout Xml File podemos cambiar el color de la pista .....
android:textColorHint="@android:color/*****"
puede reemplazar * con código de color o de color.
Esto es como el color de sugerencia predeterminado, funcionó para mí:
editText.setHintTextColor(Color.GRAY);
Parece que EditText aplica el hintTextColor solo si el texto está vacío. Una solución tan simple será como esta
Editable text = mEditText.getText();
mEditText.setText(null);
mEditText.setHintTextColor(color);
mEditText.setText(text);
Si tiene varios campos, puede extender EditText y escribir un método que ejecute esta lógica y use ese método en su lugar.
Programado en Java: al menos API v14 +
exampleEditText.setHintTextColor(getResources().getColor(R.color.your_color));
Simplemente agregue esto en su layout
para EditText
:
android: textColorHint = "# FFFFFF"
Use esto para cambiar el color de la pista. -
editText.setHintTextColor(getResources().getColor(R.color.white));
Solución para su problema -
editText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence arg0, int arg1, int arg2,int arg3){
//do something
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
//do something
}
@Override
public void afterTextChanged(Editable arg0) {
if(arg0.toString().length() <= 0) //check if length is equal to zero
tv.setHintTextColor(getResources().getColor(R.color.white));
}
});