¿Cómo se puede cambiar el fondo y el color de la fuente de un Android EditText en Android durante la edición?

Tengo un EditText que exhibe una etiqueta de texto definida por el usuario. Se muestra como fondo azul con letras blancas.

Pero cuando la persona hace clic en él, quiero que cambie a fondo blanco con letras negras, para indicar que está en modo de edición.

Entonces cuando la persona hace clic hacia fuera de él, quiero que vuelva a volver a blanco en azul, como antes. Además, si el texto introducido era más ancho que la pantalla, me gustaría que dejara de justificar.

¿Cómo puedo hacer todo eso?

Por favor intente esto:

edittext.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if (hasFocus) { v.setBackgroundColor(Color.WHITE); ((EditText) v).setTextColor(Color.BLACK); } else { v.setBackgroundColor(Color.BLUE); ((EditText) v).setTextColor(Color.WHITE); } } }); 

hay varias maneras de lograrlo. como usted puede hacer esto usando textwatcher

 public void afterTextChanged(Editable s) {} public void beforeTextChanged(CharSequence s, int start, int count, int after) {} public void onTextChanged(CharSequence s, int start, int before, int count) { // do some operation on text of text1 field // do some operation on text of text2 field } 

no estoy seguro de si se puede lograr esto en el diseño. intente usar el selector en el diseño. puede ser que esto puede funcionar. para el color del texto utilice un selector separado y para el fondo del edittext utilice otro selector. formato del selector sería así:

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

llenar el color del deseo en el atributo de color.

Puede intentar con textWatcher como a continuación

  EditText text=new EditText(this); text.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { //change the color before editing } @Override public void afterTextChanged(Editable s) { //change the color after edited } }); 

Creo que puede ser útil para usted ..

  • ¿Cómo mostrar la lista desplegable debajo de EditText?
  • Android: TextInputLayout no centrará la pista
  • Cómo resolver No se puede conectar al editor para recuperar el error de texto
  • Cómo eliminar Android auto-sugiere subrayar en EditText?
  • ¿Cómo hacer que el Teclado Suave aparezca una vez que muestro un Diálogo con un EditText?
  • Vibración de Edittext en android
  • Android GridLayout y EditText
  • Contraseña de Android editar texto que muestra el texto
  • Android EditText no puede manejar archivos grandes
  • Teclado Android oscurece EditText
  • Etiqueta en un cuadro de edición en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.