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

  • Android: Deshabilitar el teclado virtual en todos los EditTexts
  • Barra de herramientas se mueve fuera de la pantalla cuando uso adjustpan
  • Modificar estilos para EditText en Android
  • Android: EditText no rellenar ScrollView y RelativeLayout
  • ExpandableListView con un EditText
  • Android Material recolorado Subtexto de EditText
  • EditText no restaura el estado en DialogFragment
  • ¿Cómo obtener la sugerencia de Textinputlayout android en varias líneas?
  • Selected Item of Autocomplete Textview Mostrar como simple Textview?
  • EditText en GridView: Cómo obtener valor de Multiple EditText
  • Establecer estilo de texto de sugerencia Editarxts como cursiva
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.