¿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?

3 Solutions collect form web for “¿Cómo se puede cambiar el fondo y el color de la fuente de un Android EditText en Android durante la edición?”

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 ..

  • La pista no desaparece en el botón EditarTexto
  • Cambiar el color de la línea de EditText - Android
  • NullPointerException en findViewById () en android
  • EditText como parte de HeaderView pierde foco en la entrada
  • Obtener el valor del atributo Hint de AttributeSet
  • Cursor Edittext es invisible en Android 4.0
  • EditText stucks después de animación y vivo de vuelta en el desplazamiento ...?
  • Android - reducir EditText flotante etiqueta de relleno / margen?
  • Android EditText ("Textbox"): Auto capitalización de la primera letra de cada palabra mientras el usuario escribe
  • No se puede hacer clic en EditText después de añadirlo a WindowManager.
  • Android EditText - evento de mecanografía terminado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.