ncoge

mi sitio de apuntes

Práctica 6 de App Inventor

La idea original está tomada De http://appinventor.mit.edu/explore/ai2/piccall.html

Objetivo

La idea es hacer una aplicación que nos sirva para que en caso de accidente, si nos quedamos inconscientes, alguien pueda llamar a nuestra casa y decir que nos ha encontrado y donde.

ESTA PRÁCTICA NECESITA DE UN TELÉFONO PARA ALGUNAS DE SUS PARTES, PARA CAMBIAR EL TELÉFONO DE CONTACTO NECESITA UNA AGENDA QUE CONSULTAR Y EL EMULADOR NO TIENE NINGUNA. USA TU TELÉFONO CONECTADO MEDIANTE USB PARA DESARROLLARLA!.

Preparando el lienzo

Para la primera versión de nuestra aplicación solo vamos a incluir un botón de 150 X 150 para que al pulsarlo nuestro teléfono llame a una persona concreta de nuestra agenda.

Y le vamos a poner una imagen para que no quede tan soso. Arregla el texto, el tamaño y el color del mismo a tu gusto.

Añadimos la opción de llamar arrastrando Social / PhoneCall

Llamando

Desde la sección de bloques, programa el botón para que realice una llamada al número que queramos. Prueba la aplicación, si no hace nada es por que no hemos dado un número por defecto a PhoneCall1, hazlo desde el diseñador.

Información del teléfono de contacto

Con Social / PhoneNumberPicker podemos añadir una forma de seleccionar a quien se llamará al pulsar el botón de llamada.


Nuestra segunda versión

Vamos a mejorarlo un poco, añadiremos campos para guardar el nombre, la dirección y las enfermedades de las que queramos informar.

Además para que se quede guardado usaremos una base de datos (TinyDB), esto nos permitirá recuperar la información cada vez que abramos el teléfono.

Añadir pantalla preferencias

Vamos a necesitar dos pantallas, una la que hemos visto al principio y otra para guardar y cambiar la información que queramos. Podríamos hacerlo con dos screens, pero, el emulador no funciona bien y además el cambio es muy lento. En lugar de dos screens vamos a usar dos layouts verticales que rellenaremos con las dos pantallas, mostraremos uno u otro en función de nuestras necesidades.

Estando en la pantalla de llamar mostraremos el layout Programa, pero al darle al botón preferencias ocultaremos este layout y mostraremos el layout Preferencias, al pulsar sobre guardar ocultaremos este y mostraremos el layout Programa, de esta forma simulamos que tenemos dos pantallas.

Primero meter todo lo anterior en un layer vertical que llamaremos programa:


Sobre el layer programa seleccionamos la opción visible y la quitamos. Ahora ponemos otro layer vertical se llamará preferencias:

Fíjate que hemos movido el phoneNumberPicker a esta otra capa. Si no te aclaras borra el anterior y pon el nuevo en esta.

También hemos añadido una Base de Datos de Storage / TinyDB será donde guardemos las cosas.

Como guardar las preferencias

En los siguientes pasos te mostraré como almacenar y recuperar el nombre y la dirección, el resto de campos no lo haré para que lo hagas por tu cuenta ;).

Como cambiar de pantallas

Para ello jugaremos con la visibilidad de las capas (layers), cuando ponemos una visible ponemos la otra invisible.


Como Guardar los datos

Cuando salgamos de la pantalla de preferencias hemos de grabar en la base de datos el nombre y la dirección que hemos rellenado para que se pueda usar en la pantalla de Programa y cada vez que abramos la aplicación. Para hacerlo fácil vamos a crear un procedimiento que se llame guardar, de esta forma podremos aprovechar ese trozo de código en cualquier otro sitio y hacer mas simple de entender el bloque ButtonGuadar.Click

Fíjate que guardamos el contenido del TextBoxNombre como “nombre” en la base de datos, esto nos permite recuperarlo mas adelante. Hacemos lo mismo con la dirección.

Y cambiamos lo que hace el botón de guardar para que ejecute este procedimiento antes de cambiar de pantalla.

Como recuperar los datos

Cuando estemos en la pantalla de Programa tenemos que mostrar en la caja TextBoxInformacion el nombre y la dirección. Para ello primero recuperamos el contenido de la base de datos, lo meto en otro procedimiento por si lo uso luego y para que sea mas claro :

Para asegurarme de que los datos se leen tengo que hacerlo en dos momentos de la vida del programa: 1) cuando el programa empiece, y 2) cada vez que se cambie de la pantalla preferencias a la de programa

1)

2)

Ahora tengo que pintarlo en la pantalla:

Añadir “\n” al texto a presentar en pantalla nos permite añadir saltos de línea.

Llamo al procedimiento montaTexto desde los puntos 1 y 2:

Si te fijas al actualizar los valores nombre y/o dirección no cambian en la pantalla principal. Nos faltaría cargar en las variables nombre y dirección los nuevos valores modificados.

Tampoco hemos guardado en la base de datos el valor del número de teléfono al que queremos que se llame por defecto. Si no hacemos esto cada vez que cerremos el programa lo perderemos.

Ejercicio:

– Guarda y recupera el número de teléfono de contacto.

– Cambia la foto del botón por la foto del contacto que has seleccionado, si no tiene imagen pon una genérica.

– Añade un opción para indicar si eres o no Epiléptico.

2 Comentarios

  1. Muy buenas, sabrias decirme como hacer el siguiente tema?
    Tengo una aplicación echa donde en un campo de texto llega X información de una placa arduino.

    Y me gustaría que cuando X sea igual o mayor que 50 que llame a un numero de teléfono.

    Lo tengo echo todo, pero no se como decirle que en el cuadradito de texto que si algún texto supera los 50 que llame.

    Un Saludo y Gracias.

Deja un comentario

Tu dirección de correo electrónico no será publicada.

*

© 2017 ncoge

Tema por Anders NorenArriba ↑