¿Alguien puede decirme cómo hacer un EditText
no editable a través de XML? Intenté fijar android:editable
a false
, pero
- está en desuso; y
- No funcionó.
android
android-edittext
Fran Fitzpatrick
fuente
fuente
EditText
estilo y permitir el desplazamiento, useUI.setReadOnly(myEditText, true)
desde esta biblioteca . Hay algunas propiedades que deben establecerse, que puede consultar en el código fuente .Respuestas:
Use este código simple:
Funciona.
Editar: para agregar
KeyListener
más tarde, haga lo siguiente1: establecer escucha clave para la etiqueta de
textView
2: obtenga el oyente clave de la etiqueta y vuelva a configurarlo
textView
fuente
setFocusable()
porque el documento dice que la implementación predeterminada podría modificarse si se modifica?Agregue esto a su archivo xml EditText:
Hará el mismo efecto que
android:editable="false"
. Trabajó para mí, espero que también funcione para ti.fuente
TextInputLayout
Deje que su Edittext sea
editText.setKeyListener(null);
funcionará pero simplemente no escucha las teclas.
El usuario puede ver un cursor en el texto de edición.
Puedes probar
editText.setEnabled(false);
Eso significa que el usuario no puede ver el cursor. Simplemente decir que se convertirá
TextView
.fuente
Como se menciona en otras respuestas, puede hacer un
setEnabled(false)
pero ya que está preguntando cómo configurarlo a través de XML, aquí está cómo hacerlo.Agregue el siguiente atributo a su
EditText
:fuente
enabled
no está en desuso.editable
es.deshabilitar desde XML (una línea):
volver a habilitar desde Java, si es necesario (también una línea):
fuente
Hicieron obsoleto "editable" pero no proporcionaron uno correspondiente correspondiente en inputType.
Por cierto, ¿inputType = "none" tiene algún efecto? Usarlo o no no hace ninguna diferencia por lo que veo.
Por ejemplo, se dice que editText predeterminado es una sola línea. Pero debe seleccionar un inputType para que sea una sola línea. Y si selecciona "ninguno", sigue siendo multilínea.
fuente
Esta combinación me funcionó:
fuente
Como mencionó android: editable está en desuso. android: inputType = "none" debería usarse en su lugar, pero no funciona debido a un error ( https://code.google.com/p/android/issues/detail?id=2854 )
Pero puedes lograr lo mismo usando enfocable.
Vía XML:
Del código:
fuente
si desea hacer clic en él, pero no desea editarlo, intente:
fuente
Solo úsalo
android:enabled="false"
. Esto también dará una apariencia a laEditText
que hará que parezca no editable.fuente
y use lo siguiente:
fuente
Si desea hacerlo en código java, simplemente use esta línea para deshabilitarlo:
Y esto para habilitarlo:
fuente
Traté de hacer:
lo que debería funcionar, pero para mí no.
Terminé con este código:
que funciona perfectamente
fuente
Cuando quiero que una actividad no se centre en EditText y tampoco muestre el teclado al hacer clic, esto es lo que funcionó para mí.
Agregar atributos al diseño principal
y luego el campo EditText
Aquí hay un ejemplo:
fuente
El atributo "longClickable" deshabilita las acciones de pulsación prolongada que hacen que las opciones "Pegar" y "Seleccionar todo" se muestren como información sobre herramientas.
fuente
Además de @mahe madi, puedes probar esto también
Este método ocultará el cursor, perderá el foco y, lo que es más importante, establecerá el color del texto en negro comportándose como TextView.
Y para volver de nuevo a editText simplemente haga esto para obtener todas las propiedades de EditText.
Espero eso ayude :)
fuente
Podría usarlo,
android:editable="false"
pero realmente le recomendaría que lo use,setEnabled(false)
ya que proporciona una pista visual para el usuario de que el control no se puede editar. Todos los widgets deshabilitados usan la misma señal visual y la consistencia es buena.fuente
He intentado lo siguiente:
pero el problema era que si el texto de edición es el primero en el formulario, entonces obtiene el foco y el código pickCode () que inicia una nueva actividad se llama de inmediato. Así que modifiqué el código de la siguiente manera y parece funcionar bastante bien (excepto que no puedo establecer el foco en la edición de texto pero no es necesario):
Atentamente,
Comentarios bienvenidos,
John Goche
fuente
Uso
EditText.setFocusable(false)
y configuro true nuevamente si quiero editar.fuente
Prueba esto :
fuente
De esta manera hizo el trabajo por mí, puedo seleccionar y copiar al portapapeles, pero no puedo modificar ni pegar.
fuente
android: editable está en desuso, así que usa inputType en su lugar.
fuente
Me he enfrentado al mismo problema, pero después de la observación descubrí que
android:editable="false"
solo funciona cuando inputtype (android:inputType="ANY_VALUE"
) no se proporciona en Edittext.Elimine inputType de EditText y use editable = false, funciona bien.
fuente
Resuelvo esto con un diálogo.
fuente
Respuesta corta: solía
android:focusable="false"
y funcionó. La escucha de clics también funciona ahora.fuente
Tratar
fuente
Prueba este código. Está funcionando en mi proyecto, por lo que funcionará en su proyecto.
fuente