En este post te voy a explicar cómo configurar un elemento EditText de Android para que no se puedan modificar los datos, es decir, que sea de solo lectura; pero que sí se pueda tocar y desencadenar el listener correspondiente.
Para ello simplemente tienes que agregar algunos atributos XML al EditText:
clickable
: para que el usuario pueda hacer click sobre él, debe estar en true
focusable
: que no se le pueda dar focus, debe estar en false
inputType
: none
textIsSelectable
: false
Aquí pongo un ejemplo para deshabilitar la edición en un EditText:
<EditText
android:id="@+id/etFecha"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:clickable="true"
android:ems="10"
android:focusable="false"
android:inputType="none"
android:textIsSelectable="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@+id/guideline"
app:layout_constraintTop_toBottomOf="@+id/textInputLayout" />
De este modo los listeners van a seguir funcionando, pero el usuario no podrá escribir texto.
El usuario siempre va a encontrar la manera de habilitar la escritura, por ejemplo, podría pegar texto, cosa que se puede deshabilitar como se ve aquí.
A lo que me refiero es que no deberías confiar en la validación de ese modo; simplemente usa esto para la parte de la interfaz, y haz la validación en un lugar que no sea la vista.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.