En mi aplicación, tengo un EditText que el usuario solo tiene acceso de lectura, no acceso de escritura.
En el código que puse android:enabled="false".
Aunque el fondo de EditText cambió a oscuro, cuando hago clic en él, aparece el teclado y puedo cambiar el texto.
¿Qué debo configurar para desactivar EditText?
android
android-edittext
Hesam
fuente
fuente

EditTextmientras se mantienen estas propiedades, solo utilícelasUI.setReadOnly(myEditText, true)desde esta biblioteca . Si desea replicar este comportamiento sin la biblioteca, consulte el código fuente de este pequeño método.Respuestas:
Creo que lo correcto sería establecer
android:editable="false".Y si te preguntas por qué mi enlace apunta a los atributos de
TextView, la respuesta es porqueEditTexthereda deTextView:Actualización:
como se menciona en los comentarios a continuación,
editableestá en desuso ( desde el nivel API 3 ). En su lugar, debería estar usandoinputType(con el valornone).fuente
editText.setEnabled(false); editText.setInputType(InputType.TYPE_NULL);android:editable="false" android:focusable="false"funciona muy bien para mí (olvídate de obsoleto, creo que android: editable no tiene nada que ver con android: inputType)use
EditText.setFocusable(false)para deshabilitar la ediciónEditText.setFocusableInTouchMode(true)para habilitar la edición;fuente
editText.setEnabled(false);cambiará el color del texto a gris. Sin embargo, los hilanderos no cambian el color del texto cuando se usasetEnabled, lo que lo convierte en una experiencia inconsistente.setFocusable(true)? vea este enlace para ver la diferencia entresetFocusable()ysetFocusableInTouchMode(): stackoverflow.com/questions/23799064/…Puedes probar el siguiente método:
EditText habilitado:
EditText deshabilitado:
Funciona para mí y espero que te ayude.
fuente
editText.setFocusableInTouchMode(true)lugar deeditText.setFocusable(true).Use esto para deshabilitar la entrada del usuario
android: editable = "false" Este método está en desuso.
fuente
Para desactivar la edición
EditText, creo que podemos usarfocusableORenableperoUsando
android:enabled=...oeditText.setEnabled(...)También cambia el color del texto
EditTexta gris.Al hacer clic no tiene efecto
Usando
android:focusable=...oeditText.setFocusable(false)-editText.setFocusableInTouchMode(true)No cambia el color del texto de
EditTextAl hacer clic, resalta la
EditTextlínea de fondo durante unos pocos milisegundosSalida
fuente
Como
android:editable="false"se describe. Puede usar InputType TYPE_NULL en EditTextusar así:
fuente
Como en
android:editable="false"desuso enxmlSi lo desea
java class, también puede usar esto mediante programaciónfuente
Simplemente:
fuente
Establezca las siguientes propiedades en clase:
Funcionará sin problemas según lo requiera.
fuente
enabledfue suficientePara deshabilitar la funcionalidad de un EditText, simplemente use:
en caso de que desee habilitarlo de alguna manera, puede usar:
fuente
si lo usa
android:editable="false", eclipse le recordará este mensaje "android: editable está en desuso: use inputType en su lugar".Entonces, en su
android:focusable="false"lugar, me funcionó bien.fuente
ahora está en desuso y uso
fuente
TYPE_TEXT_VARIATION_PASSWORDSiga esto para más developer.android.com/reference/android/text/InputTypeUsar en su
TextViewlugar.fuente
Deshabilitar = ENFOQUE + CLIC + CURSOR
Desactivar el foco, el clic y la visibilidad del cursor me ayuda.
fuente
Esto hará que su texto de edición esté deshabilitado .
Y al usar esto
Simplemente hará que su Edittext no muestre su teclado virtual , pero si está conectado a un teclado físico, le permitirá escribir.
fuente
Yo uso Google recientemente lanzado Biblioteca de diseño de materiales. En mi caso, funciona cuando uso android: focusable = "false" y android: cursorVisible = "false"
fuente
En mi caso, necesitaba mi
EditTextpara desplazar el texto si no. de líneas excedemaxLinescuando está deshabilitado. Esta implementación funcionó perfectamente para mí.fuente
Prueba este, funciona bien para mí:
Nota: debe agregar
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);su actividad okeyboardaparecerá una ventana emergente por primera vez.fuente
Como alguna respuesta, menciónelo, si deshabilita editText se vuelve gris y si establece false enfocable, se muestra el cursor.
Si desea hacerlo solo con xml, este fue el truco
Simplemente agrego un FrameLayout que aparece sobre editText y lo configuro enfocable y se puede hacer clic para que editText no se pueda hacer clic.
fuente
Esto funciona para mi:
android: focusable = "false"
fuente
Del comentario de @Asymptote sobre la respuesta aceptada, use:
... y Bob es tu tío.
fuente
Hoy todavía lo uso
editable="false", pero también confocusable="false".Creo que el caso que necesitamos para que un EditText no sea editable, es porque queremos mantener su estilo EditText (con ese subrayado, con una pista, etc.), pero acepta otras entradas en lugar de texto. Por ejemplo una lista desplegable.
En tal caso de uso, necesitamos que se pueda hacer
EditTextclic (por lo tanto,enabled="false"no es adecuado).focusable="false"Sin embargo, al configurar este truco, aún puedo mantener presionado el EditText y pegar mi propio texto en el portapapeles . Dependiendo de su código y manejo, esto puede incluso bloquear su aplicación.Así que también usé
editable="false"y ahora todo es genial, excepto la advertencia.fuente
puede usar
android:focusable="false"pero también debe deshabilitar el cursor; de lo contrario, la función copiar / pegar seguiría funcionando.entonces, usa
fuente
Hay múltiples fue cómo lograr múltiples niveles de discapacitados.
editText.setShowSoftInputOnFocus(false);yeditText.setFocusableevita que se
EditTextmuestre el teclado - escribiendo en algún texto. Pero el cursor todavía es visible y el usuario puede pegar algo de texto.editText.setCursorVisible(false)Oculta el cursor. No estoy seguro de por qué querrías hacer eso aunque. El usuario puede ingresar texto y pegar.
editText.setKeyListener(null)Encuentro esta manera más conveniente. No hay forma de que el usuario pueda ingresar texto, pero el widget aún funciona
OnClickListenersi desea activar la acción cuando el usuario lo tocaeditText.setEnabled(false);completamente deshabilita
EditText. Literalmente es de 'solo lectura', el usuario no puede ingresar ningún texto y (por ejemplo)OnClickListenerno funciona con él.Documentación TextEdit
fuente
Establezca esto en su código XML, funciona.
android: focusableInTouchMode = "false"
fuente