texto studio poner edittext android android-edittext android-drawable android-resources nine-patch

android - studio - ¿Cómo volver al estilo predeterminado en EditText si aplico un fondo?



hint textview android (1)

Me acabo de encontrar con un problema que no sé cómo resolver. Parece una tontería pero no puedo encontrar una manera de arreglarlo.

Tengo un formulario en Android con varios EditText y cuando envías el formulario comprueba esos EditText y si tienen datos incorrectos, cambio el EditText al borde rojo (aplicando una imagen de ninepatch).

myEditText.setBackgroundResource(R.drawable.edittext_red);

El problema es que quiero restaurar el estilo predeterminado de Android cuando el usuario cambia el texto de edición, pero no sé cómo hacerlo. si lo hago:

myEditText.setBackgroundResource(0);

Solo quitará todo y eso no es lo que quiero.

¡Gracias!


Primero, antes de llamar a setBackgroundResource con tu propio ninepatch, almacena el fondo original de EditText, así:

Drawable originalDrawable = myEditText.getBackground();

Luego, si el usuario ingresó los datos incorrectos, puede configurar su ninepatch de borde rojo:

myEditText.setBackgroundResource(R.drawable.edittext_red);

Y luego, cuando desee restaurar el aspecto de EditText, use el dibujo almacenado:

myEditText.setBackgroundDrawable(originalDrawable);

Alternativamente , puede hacer referencia al fondo predeterminado de Android EditText directamente de esta manera:

myEditText.setBackgroundResource(android.R.drawable.edit_text);

En androiddrawables puedes ver cómo se ven los diferentes dibujables para las diferentes versiones de Android y obtener su identificador de recursos. Este método debería funcionar para todos los dibujables, no solo para EditarTexto

Estos (y otros recursos de Android) también se pueden encontrar en su propio sistema, en la carpeta android-sdk en

<ruta a la carpeta android-sdk> / android-sdk / platform / android- <nivel de API> / data / res /