40 votos

¿Cómo replicar android: editable = "false" en el código?

En el diseño se puede establecer la EditText widget que no editable a través de la android:editable attribute .

¿Cómo puedo hacer esto en el código? Necesito hacer la EditText widget para ser modificable dependiendo de las condiciones.

37voto

Gerry Puntos 141
editText.setFocusable(false);
editText.setClickable(false);

EditTextcontrol no puede ser seleccionado y centrado, por lo que no se pueden editar.

26voto

tschakkkiiiii Puntos 53

Acabo de probar este yo,

Para deshabilitar la edición de texto:

.setFocusable(false);

también permite setFocusableInTouchMode a false.

Para habilitar la edición de texto:

setFocusableInTouchMode(true);

Esto también define setFocusable true;

15voto

Christopher Perry Puntos 7972

La mejor manera de hacerlo es con esta sola línea de código:

textView.setKeyListener(null);

Los documentos dicen para este método:

Establece el oyente clave para ser utilizado con este TextView. Esto puede ser nulo al no permitir la entrada del usuario.

12voto

Josef Pfleger Puntos 37003

Creo que un InputFilter que rechaza todos los cambios es una buena solución:

editText.setFilters(new InputFilter[] {
    new InputFilter() {
    	public CharSequence filter(CharSequence src, int start,
    		int end, Spanned dst, int dstart, int dend) {
    		return src.length() < 1 ? dst.subSequence(dstart, dend) : "";
    	}
    }
});

3voto

Will Puntos 5662

No veo un método para ese atributo en el EditText clase. Sin embargo, hay otras cosas similares que podría utilizar como android:focus/setFocusable(boolean) o crear otro TextView cuya android:editable="false" y el uso de setVisiblilty() para cambiar entre el editables y no editables vistas. Si utilizas View.GONE el usuario nunca se sabe, hay dos EditTexts.

Si su sentimiento ambicioso que probablemente podría hacer algo con el EditText s onTextChanged escucha como tener reaccionan con un setText.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X