Saltar al contenido principal

Context Results

Abrir en ChatGPT

Cuando escribes datos de la interfaz de usuario al modelo, el método write del BindingContext activa las validaciones. Los resultados de la validación determinan si los datos son aceptables.

Procesando resultados de validación

Puedes procesar los resultados de validación para proporcionar retroalimentación al usuario. Si una validación falla, puedes prevenir la actualización de los datos en el modelo y mostrar mensajes de error asociados con cada validación fallida.

ValidationResult result = context.write(hero);
if (!result.isValid()) {
displayErrors(result.getMessages());
} else {
proceedWithUpdate();
}

Estado de Validación del Contexto

Cada vez que el contexto valida los componentes, se dispara un BindingContextValidateEvent. Este evento entrega el ValidationResult para todas las vinculaciones que han cambiado simultáneamente. Puedes usar estos resultados para activar acciones y responder apropiadamente, como habilitar o deshabilitar el botón de envío según la validez general del formulario.

BindingContext<User> context = new BindingContext<>(User.class);

// Escucha el BindingContextValidateEvent que se dispara en cada interacción del usuario.
context.addValidateListener(event -> {
submit.setEnabled(event.isValid());
});

Violación de auto enfoque

Al tratar con formularios que requieren validación a través de múltiples campos, enfocar automáticamente el primer campo con un error puede mejorar significativamente la experiencia del usuario. Esta característica ayuda a los usuarios a identificar y corregir errores de inmediato, agilizando el proceso de completar el formulario.

El BindingContext simplifica el proceso de configurar el auto-enfoque en el primer componente con un error de validación. Al usar el método setAutoFocusFirstViolation, puedes habilitar esta función con un código mínimo, asegurando que la interfaz de usuario se vuelva más intuitiva y receptiva a los errores de entrada.

BindingContext<User> context = new BindingContext<>(User.class);
context.setAutoFocusFirstViolation(true);
Enfoque Consciente

Esta función solo funciona para los componentes que implementan la preocupación FocusAcceptorAware.