Esta es la forma por defecto de un EditText mira yo cuando cree uno:

Establecer mediante programación el Fondo de Recursos de EditText transparente de campo

Esto es lo que parece después de cambiar el fondo de la misma:

Establecer mediante programación el Fondo de Recursos de EditText transparente de campo

Para cambiar el fondo a la imagen de arriba, yo agregue el siguiente EditText propiedad a mi EditText en mi archivo XML:

android:background="@android:drawable/edit_text"

Lo que quiero hacer es hacer lo que he hecho anteriormente en mi clase de actividad (lo que da al usuario la opción de elegir entre el estilo clásico y el transparente/estilo nuevo).

Así como este – necesito gente para llenar en el /*...*/

if (classicTextbox()) { //the blocky white one

    editText.setTextColor(Color.BLACK);
    editText.setBackgroundResource(android.R.drawable.edit_text);

} else { //the new transparent one

    editText.setTextColor(Color.WHITE);
    editText.setBackgroundResource(/*...*/);
}

Entonces, ¿cómo puedo volver a cambiarlo por el nuevo, transparente EditText estilo?

OriginalEl autor Michael Yaworski | 2014-02-15

2 Comentarios

  1. 9

    Acabé tratando de salvar sólo a la original Drawable cuando el diseño es abierto y, a continuación, establecer el fondo de recursos de esa manera cuando yo quiero. Como este:

    En mi onCreate método:

    Drawable originalDrawable = editText.getBackground();

    Y, a continuación, establecer:

    //need to use .setBackground and .setBackgroundDrawable depending on the 
    //android version because .setBackgroundDrawable is depreciated
    int sdk = android.os.Build.VERSION.SDK_INT;
    int jellyBean = android.os.Build.VERSION_CODES.JELLY_BEAN;
    if(sdk < jellyBean) {
        editText.setBackgroundDrawable(originalDrawable);
    } else {
        editText.setBackground(originalDrawable);
    }

    Todavía me anime a más respuestas, porque no me gusta bastante esta solución.


    Fuentes:

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

    setBackground vs setBackgroundDrawable (Android)

    OriginalEl autor Michael Yaworski

  2. 1

    El predeterminado holo EditText‘s de fondo es: edit_text_holo_dark. Que la oscuridad de la versión. También existe la contraparte que, a la luz de la versión: edit_text_holo_light.

    edit_text_holo_dark.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <item android:state_multiline="true" android:state_window_focused="false" android:state_enabled="true"  android:drawable="@drawable/textfield_multiline_default_holo_dark" />
        <item android:state_multiline="true" android:state_window_focused="false" android:state_enabled="false" android:drawable="@drawable/textfield_multiline_disabled_holo_dark" />
        <item android:state_multiline="true" android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/textfield_multiline_activated_holo_dark" />
        <item android:state_multiline="true" android:state_enabled="true" android:state_activated="true" android:drawable="@drawable/textfield_multiline_focused_holo_dark" />
        <item android:state_multiline="true" android:state_enabled="true" android:drawable="@drawable/textfield_multiline_default_holo_dark" />
        <item android:state_multiline="true" android:state_focused="true" android:drawable="@drawable/textfield_multiline_disabled_focused_holo_dark" />
        <item android:state_multiline="true" android:drawable="@drawable/textfield_multiline_disabled_holo_dark" />
    
        <item android:state_window_focused="false" android:state_enabled="true" android:drawable="@drawable/textfield_default_holo_dark" />
        <item android:state_window_focused="false" android:state_enabled="false" android:drawable="@drawable/textfield_disabled_holo_dark" />
        <item android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/textfield_activated_holo_dark" />
        <item android:state_enabled="true" android:state_activated="true" android:drawable="@drawable/textfield_focused_holo_dark" />
        <item android:state_enabled="true" android:drawable="@drawable/textfield_default_holo_dark" />
        <item android:state_focused="true" android:drawable="@drawable/textfield_disabled_focused_holo_dark" />
        <item android:drawable="@drawable/textfield_disabled_holo_dark" />
    </selector>

    Mantener en mente que estos holo elementos sólo están disponibles en Android HC+.

    ¿Cómo puedo acceder a la holo dibujables como yo hice con android.R.drawable ? No puedo simplemente copiar el xml para mí porque hace referencia a dibujables que no tengo.

    OriginalEl autor Ahmad

Dejar respuesta

Please enter your comment!
Please enter your name here