Pregunta

¿Cómo puedo deshabilitar la escritura en un EditText campo en Android?

¿Fue útil?

Solución

Creo que es un error en Android ... se puede solucionar agregando este parche :)
Verifique estos enlacesPregunta 1yPregunta 2

Espero que sea útil.

Otros consejos

puedes usar EditText.setFocusable(false) para deshabilitar la edición
EditText.setFocusableInTouchMode(true) para habilitar la edición;

En codigo:

editText.setEnabled(false);

O, en XML:

android:editable="false"

Asumiendo editText eres tu EditText objeto:

editText.setEnabled(false);

Puede probar el siguiente método:

 private void disableEditText(EditText editText) {
    editText.setFocusable(false);
    editText.setEnabled(false);
    editText.setCursorVisible(false);
    editText.setKeyListener(null);
    editText.setBackgroundColor(Color.TRANSPARENT); 
 }

Activado EditText:

Enabled EditText

EDITTEXT DE DISCAPACIDAD:

Disabled EditText

Funciona para mí y espero que te ayude.

Simplemente establezca la propiedad enfocable de su editText en "falso" y ya está terminado.

<EditText
        android:id="@+id/EditTextInput"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:focusable="false"
        android:gravity="right"
        android:cursorVisible="true">
    </EditText>

Las opciones a continuación no funcionan

En codigo:

editText.setEnabled(false);O, en XML:android:editable="false"

Edittext edittext = (EditText)findViewById(R.id.edit);
edittext.setEnabled(false);

El siguiente código deshabilita el edittext en Android

editText.setEnabled(false);
edittext.setFocusable(false); 
edittext.setEnabled(false);

InputMethodManager imm = (InputMethodManager)
  getSystemService(Context.INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0);
  //removes on screen keyboard

Habilitar:

private void enableEditText() {
    mEditText.setFocusableInTouchMode(true);
    mEditText.setFocusable(true);
    mEditText.setEnabled(true);
}

Deshabilitar:

private void disableEditText() {
    mEditText.setEnabled(false);
    mEditText.setFocusable(false);
    mEditText.setFocusableInTouchMode(false);
}

Para deshabilitar un editText en Android:

editText.setEnabled(false);

Puedes escribir edittext.setInputType(0) Si desea mostrar el edittext pero no ingresar ningún valor

Escribe esto en el padre:

android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"

Ejemplo:

<RelativeLayout 
android:id="@+id/menu_2_zawezanie_rl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/menu_2_horizontalScrollView"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
android:orientation="horizontal"
android:background="@drawable/rame">

<EditText
    android:id="@+id/menu2_et"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:layout_toLeftOf="@+id/menu2_ibtn"
    android:gravity="center"
    android:hint="@string/filtruj" >
</EditText>
<ImageButton
    android:id="@+id/menu2_ibtn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:background="@null"
    android:src="@drawable/selector_btn" />

Según yo ... si ya has declarado el edittext en el archivo XML y configure la propiedad en el archivo XML "android:enabled=false" y deshabilitar en tiempo de ejecución en ese momento en el archivo Java agregando solo 2 o 3 líneas

  1. Primero crea el objeto
  2. Declarar editText et1;
  3. Obtener por identificación

    et1 = (EditText) FindViewById(R.id.edittext1);
    et1.setEnabled(false);

Puede habilitar o deshabilitar cada control en tiempo de ejecución por archivo Java y tiempo de diseño por archivo XML.

El XML editable la propiedad está en desuso desde API Nivel 15.

Deberías usar ahora el inputType propiedad con el valor none. Pero hay un error que hace que esta funcionalidad sea inútil.

Aquí Puede seguir el estado del problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top