Crear extensiones para AppInventor (eventos) 6

También podemos definir bloques de gestión de eventos, ya sea cuando finaliza una lectura o simplemente cuando se genera una excepción.

En este caso tenemos el código de ejemplo en https://github.com/pinguytaz/extAppInventor/blob/main/Ejemplos/src/losejemplos/Eventos.java en donde hemos creado una función que va sumando y cuando esta llega a 5 lanza el evento, que sera una función con la anotación @SimpleEvent que no tiene parámetros especiales ya que son los de siempre: description que tendrá la descripción como siempre y userVisible a true aunque ese es el valor por defecto.

La función evento podrá tener los parámetros que creamos oportunos pero no retorna ningún valor y lo que si deberá tener es una llamada a EventDispatcher.dispatchEvent para lanzar el evento, esta llamada tendra los siguientes parametros:

  • El componente que sera «this» para saber donde esta lanzando el evento
  • Cadena con el nombre del evento, que es el nombre de la función creada. Cuidado si ponemos otro distinto no tendremos error pero no lo capturaremos.
  • Parámetros que darán información.
 @SimpleEvent(description = "Evento que se dispara si Llega a 5 la suma")
   public void Llego(String texto) {
      ... Código antes de despachar el evento ...
      EventDispatcher.dispatchEvent(this, "Llego", texto);  //Despacha evento con los datos que le llegan
      .. código después de despacharlos
   }

Esto es muy útil en operaciones por ejemplo de lectura de un fichero, o el contenido de una tarjeta NFC de forma que cuando lo ha leido al completo se lanza el evento y ya podemos empezar a procesar la información.

Pero podemos utilizar los eventos, junto a «try{..}catch()«, para capturar excepciones y evitar pantallas de error en tiempo de ejecución y abortar la aplicación pues a veces se pueden intentar reparar.

podemos ver un evento que se genera cuando se produce una excepción, en este caso la división por cero.

Por ejemplo en una división por cero como podemos ver en el ejemplo, lo que hacemos es capturar la excepción y lanzar un evento que gestionaremos para dar avisos mas sencillo o resolverlos.

La captura de la excepción se realizara como siempre en java con «try{ .. } catch(Exception e) { …}» y dentro de catch llamaremos a la funcón que lanza el evento, en nuestro caso «OcurreUnError» con la anotación @SimpleEvent .

public int Divide(int numero1, int numero2) {
     int resultado = 1966; 
     try {
        resultado = numero1 / numero2;
     } catch(Exception e) { OcurreUnError(e.getMessage(),9 ); }   // Da el mensaje de erro y un código de error.
     return resultado;
  }

@SimpleEvent(description = "Evento que se dispara si ocurre un error")
   public void OcurreUnError(String error, int codError) {  ........ No olvidar EventDispatcher.dispatchEvent .. }

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos Ver más

  • Responsable: Javier.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a Hostinger.es que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Ver
Privacidad