Cómo volver a los valores predeterminados de estilo en EditText si puedo solicitar un fondo?

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

Tengo un formulario en android con varias EditText y cuando envíe el formulario comprueba los EditText y si tienen datos erróneos puedo cambiar el EditText a borde rojo (la aplicación de un ninepatch imagen).

myEditText.setBackgroundResource(R.drawable.edittext_red);

El problema es que quiero restaurar android en el estilo por defecto cuando el usuario cambie el EditText, pero no sé cómo hacerlo. si yo hago:

myEditText.setBackgroundResource(0);

Se acaba de quitar todo y eso no es lo que quiero.

Gracias!

InformationsquelleAutor SERPRO | 2011-08-02

1 Kommentar

  1. 57

    Primero, antes de llamar a setBackgroundResource con su propia ninepatch, almacenar el fondo original de la EditText, como este:

    Drawable originalDrawable = myEditText.getBackground();

    Entonces, si el usuario ingresa datos erróneos, usted puede configurar su borde rojo ninepatch:

    myEditText.setBackgroundResource(R.drawable.edittext_red);

    Y más tarde, cuando se desea restaurar la apariencia de la EditText, la usan dibujable:

    myEditText.setBackgroundDrawable(originalDrawable);

    Alternativamente puede hacer referencia a el de Android por defecto EditText fondo directamente como este:

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

    A androiddrawables se puede ver cómo los diferentes dibujables buscar las diferentes versiones de Android, y obtener su identificador de recursos. Este método debería funcionar para todos los dibujables, no sólo EditText

    Estos (y otros android recursos) también se puede encontrar en su propio sistema, en el android-sdk carpeta en

    < ruta para android-sdk carpeta>/android-sdk/plataformas/android< a nivel de API>/datos/res/

    • Hey SeRPRo – usted debe marcar videre la respuesta como correcta, se les dará a ambos puntos y de informar a los futuros usuarios que esta era la solución.
    • Su solución alternativa era LA respuesta que estaba buscando. Era el más simple y más fácil manera de restaurar el aspecto original de su EditText (incluso restaura el tamaño!). Pero en lugar de utilizar editbox_background_normal acabo de utilizar android.R.dibujable.edit_text
    • Cuando se hace esto en ICS, parece un viejo 2.3 estilo va a ser aplicado. ¿Te diste cuenta de esto demasiado?
    • comentario debe ser la respuesta! +1 aunque la respuesta original es mejor explicado 🙂 +1

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea