Hoy vamos a ver cómo podemos crear nuevas pantallas en App Inventor. Además, para poder acceder a cada pantalla nueva, vamos a poner unos botones que indiquen qué pantalla se va a abrir:

1.- Como siempre, hace falta tener creado el proyecto. Una vez hecho esto, accedemos a la sección “Screen Arrangement” y colocamos en nuestra pantalla un “HorizontalArrangement”. En las propiedades de este objeto debemos marcar “Width” y “Height” con valor “Fill parent”, de esta manera se ajustará a la pantalla.

Screen Arrangement

Screen Arrangement

2.- El segundo paso es arrastrar dentro de nuestro objeto “HorizontalArrangement” 2 “Button”, uno al lado del otro. Estos botones serán los que utilizaremos para navegar entre las distintas pantallas de nuestra app. Para que queden bien maquetados en la aplicación, les pondremos a cada uno el texto que queremos que muestre y en sus propiedades pondremos el “Width” y “Height” como “Fill parent”. Así es como nos ha quedado nuestro menú.

Botones menú

Botones menú

3.- En el menú superior del diseñador de pantallas hay un botón para añadir nuevas pantallas. Este será el siguiente paso, pulsamos en “Add Screen” y añadimos las pantallas que queramos: en mi caso he añadido 2 más y les he puesto de nombre “Pantalla2” y “Pantalla3”.

Pantallas

Pantallas

4.- Y de nuevo para poder navegar entre estas nuevas pantallas repetiremos el paso número 1 y 2 para la creación del menú.

5.- Ahora nos vamos al editor de bloques para empezar a programar los botones. Lo que haremos será acceder a la pestaña “Built-In” y en la sección “Definition” sacamos un bloque “procedure” y un bloque “name”. El objetivo de estos bloques es crear una función que abra una pantalla nueva que nosotros indicaremos. Por ello, al bloque “procedure” le llamaremos “abrirPantalla” y al bloque “name”, que encaja en la parte “arg” de la pieza, “nombrePantalla”.

6.- A continuación, dentro de la pestaña “Built-In” en la sección “Control”, sacamos el bloque “open another screen” que irá dentro de nuestra función “abrirPantalla” al que encajaremos el bloque “nombrePantalla” que se encuentra en la pestaña “My Blocks” dentro de “My Definitions”. Este sería el resultado de nuestra función:

Función abrirPantalla

Función abrirPantalla

Este procedimiento de “abrirPantalla” hay que crearla en cada pantalla de lo contrario no funcionará nuestra app.

7.- Lo que falta en este punto es que cuando se pulse cada botón de la app, abra la pantalla correspondiente. Para ello sacamos el bloque “Button1.Click” dentro de “My Blocks -> Button1” (en caso de haberle cambiado el nombre al botón aparecerá con el nombre que se le haya asignado) y dentro pondremos el bloque “abrirPantalla” que lo podemos sacar de “My Blocks -> My Definitions”. Conectado con este bloque, pondremos un bloque “text” obtenido de “Built-In -> Text” y al que cambiaremos el texto por el nombre de la pantalla que queremos que se abra.

8.- Y para terminar lo que haremos será añadir debajo de “abrirPantalla” un bloque “close screen” que lo podemos encontrar en “Built-In -> Control”. Esto hará que la pantalla anterior se cierre después de abrir la nueva.

Evento click del botón

Evento click del botón

Los puntos 7 y 8 se deben hacer para cada botón de cada pantalla porque si no no funcionará la app.

Así es como quedaría cada una de nuestras pantallas con la diferencia de que en función del botón se debe abrir una u otra pantalla. A probarlo!

Bloques pantalla

Bloques pantalla

69 Thoughts on “Navegando entre pantallas con App Inventor

  1. guido on 16 marzo, 2014 at 5:05 said:

    muchas gracias, me sirvio demasiado. Te hago una pregunta. Se puede hacer que el usuario de la aplicacion pueda cambiar el texto en el boton.
    Por ej: when “boton1” longclick, set “boton1” text to ( lo que el usuario quiera)

    • ivillarroel on 28 marzo, 2014 at 11:03 said:

      Hola guido,

      Pues la verdad es que sí que se puede. Para ello en la parte de diseño tienes que arrastrar a la pantalla un objeto “notifier” y luego en el apartado de bloques hacer lo siguiente:
      – Sacar una pieza de “when boton1 longclick” y meter dentro una pieza de “call notifier1 show text dialog”.
      – En esa pieza le indicas el mensaje para que el usuario sepa que va a renombrar el botón.
      – Después utilizas la pieza de “when notifier1 afterTextInput” y ahí dentro metes la pieza de “set button1 text to” + “get response”.

      Con eso ya el usuario puede cambiar el nombre del botón. Supongo que ya habrás encontrado tú mismo la solución pero bueno, queda para el futuro =).

      Saludos!

  2. Guillermo on 21 marzo, 2014 at 3:57 said:

    Muy buena, me has evitado varios quebraderos de cabeza !!!
    Muchas Gracias !!!!!!

  3. Sebastian on 31 marzo, 2014 at 18:04 said:

    disculpa amigo soy nuevo en esto, aunque con mucha experiencia en cuestion de programacion y no me funciona segui tu ejemplo y la verdad es que es frustrante!! el error que me da es el siguiente: “Switching forms is not currently suported during development”

    • ivillarroel on 1 abril, 2014 at 9:53 said:

      Hola Sebastian,

      No se muy bien cual es tu caso, estas usando el App Inventor 2? o el classic. De todas formas, el cambio de pantalla no se puede probar en el modo de desarrollo. Para probarlo tienes que empaquetar el programa en un archivo .apk e instalarlo en el dispositivo o emulador.

      Si aún así no te funciona necesitaría más información. Cómo tienes el código?

      Saludos!

  4. roberto on 30 septiembre, 2014 at 20:40 said:

    Disculpa, para volver atras en las pantallas hay que añadir algo?
    Gracias y un saludo

    • ivillarroel on 1 octubre, 2014 at 10:57 said:

      Hola roberto,

      El sistema de navegación entre pantallas de App Inventor esta pensado para que siempre exista una única pantalla activa, si te das cuenta cada vez que abres una pantalla la anterior la cierras. Esto es para no consumir mucha memoria. De modo que si pulsas el botón de atrás del movil, la aplicación se cierra. Hay un evento con el que puedes controlar esto, se llama “when NombrePantalla.BackPressed”. Utilizando este bloque de control puedes evitar que la aplicación se cierre y abrir la ventana que quieras (como por ejemplo la anterior donde estabas). Para ello tienes que tener el menú muy controlado y saber en todo momento desde que pantalla has venido.

      Espero haberme explicado bien, si tienes dudas me comentas ok?

      Gracias y saludos!

      • maría jose perez on 7 abril, 2017 at 0:14 said:

        muestra la imagen de los bloques utilizados para regresar de una pantalla a la anterior y paso a paso por favor y gracias.

  5. Daniel Cabas on 21 febrero, 2015 at 5:10 said:

    No he podido pasar del paso 5 debido a que en la pestaña Build-it no me sale la sección “Definition”. Me salen las siguientes secciones: Control, Logic, Math, Text, Lists, Colors, Variables y Procedures.
    ¿Me puedes colaborar o será un error del APP INVENTOR?

    • ivillarroel on 24 febrero, 2015 at 9:26 said:

      Hola Daniel y perdón por el retraso en responder.

      Lo que buscas es Procedures. La diferencia es la versión de App inventor. Puede que algunas cosas estén en otro sitio pero al final tienen la misma función.

      Espero haberte ayudado. Si necesitas algo más dime.

  6. Antonio on 23 abril, 2015 at 18:20 said:

    Hola me gustaria hacerte una consulta: estoy haciendo un bloc de notas y quiero que el texto sea en dos colores negro y rojo, hasta ahora solo e conseguido que al pulsar el boton para el texto negro salga todo en negro y si pulso el boton de texto rojo se cambia todo el texto a rojo, pues bien lo que me gustaria es como poner el texto en los dos colores, por ejemplo: Hola amigo ( Hola = negro ) ( amigo = rojo ) para poder escribir en varios colores en el textbox y tambien como se guardaria el texto para luego mostrarlo en ambos colores. Perdon por el toston soy bastante novato. Gracias Y un saludo

    • Iker on 24 abril, 2015 at 10:46 said:

      Hola Antonio,
      He estado buscando alguna manera de hacer lo que buscas y no he tenido éxito. App Inventor todavía no tienen una manera sencilla para representar un editor wysiwyg que sería lo más intuitivo y lógico para el usuario. De momento lo que se me ocurre es usar muchas etiquetas para mostrar de distintos colores el texto pero es un poco locura.

      Siento no haber podido ayudarte, si se me ocurre alguna otra idea te la haré saber.

      Gracias.

  7. Antonio on 24 abril, 2015 at 11:57 said:

    Hola, muchas gracias por tu respuesta y por tu ayuda. Dejare el texto en negro y hare algunos botones en colores, eso me servira de practica. Un saludo.

  8. jose on 23 junio, 2015 at 3:11 said:

    Hola!! Recién estos días estoy aprendiendo sobre inventor 2 y me pierdo porque no encuentro las funciones del punto cinco. Podrías indicarme donde están las funciones que utilizas en inventor 2? Me frustra no encuentro nada.

    • Iker on 23 junio, 2015 at 20:05 said:

      Hola jose,

      En la versión 2 el bloque “procedure” lo puedes ver directamente en el apartado “Built in”. Sacas un bloque de esos y haces click en el cuadradito pequeño azul que aparece en la parte superior izquierda de la pieza. Después puedes arrastrar la pequeña pieza llamada “input” de la parte izquierda para encajarla en la parte derecha. De esta forma:
      http://aprenderaprogramarapps.es/wp-content/uploads/2015/06/ejemplo_procedure.jpg

      Después puedes hacer click en la x del input que has utilizado para darle un nombre más apropiado.

      Si no me explico bien me dices.

      Gracias y saludos!

      • LAURA on 13 abril, 2017 at 1:53 said:

        HOLA , USO APP INVENTOR 2 Y CUANDO TRATO DE HACER EL PROCEDIMIENTO ME PIERDO PUES NO SE CUALES SON LOS BLOQUES NAME Y VALUE AZUL CLARO QUE LE CONECTAS A OPEN ANOTHER SCREEN, O ES QUE DEBO USAR EL BLOQUE QUE DICE “OPEN ANOTHER SCREEN WITH START VALUE” QUE TIENE PARA CONECTAR SCREEN NAME Y START VALUE.. POR FAVOR , AGRADECERÍA TU AYUDA. GRACIAS DE ANTEMANO.

        • Iker on 17 abril, 2017 at 10:48 said:

          Hola Laura,

          El bloque que buscas ahora se llama “Open another screen screenName” y ahí le indicas el nombre de la pantalla que quieres abrir.

          Espero haberte ayudado.

          Muchas gracias y saludos!

    • Hola, Gracias por el tutorial me ayudo a entender como hacerlo, yo igual estoy empezando con esto de android y app inventor, se ve que tiene mucho potencial. Un saludo u de verdad gracias.. (Estoy usando la version 2 de App Inventor)

      • Martha Graciela on 13 febrero, 2017 at 21:18 said:

        necesito ayuda por favor!! estoy desesperada te platico cree una aplicación con un menú principal con 8 botones cada botón me dirija a otra pantalla, con varias imágenes que dependiendo del botón que cliquees se hacen o no visibles, hasta aquí todo bien, pero una vez que la descargo al celular noto que a veces abre sin problemas desde el menú principal las otras pantallas o aveces sale el mensaje de “la aplicación se detuvo” y se sale de la aplicación, a veces doy clic y se abre normal y otras veces no, he notado también que el botón que me dirige a la pantalla donde tengo mas imágenes (21) de plano siempre salta el aviso anterior.
        Intente cambiar las imágenes a jpg o a png y me sigue saltando el mismo aviso.
        mis códigos son básicos no se si ahí este el problema.
        Y intente con tu tutorial y sigue saliendo lo mismo ya no se que hacer quiero tirar la toalla :(

        • Hola Martha,

          Lo primero de todo, ¿te has asegurado de que tras abrir una pantalla nueva cierras la anterior? El error que dices que te sale suele ser por abrir pantallas nuevas y no cerrarlas porque hay un límite de pantallas que se pueden abrir simultáneamente ya que consume recursos del dispositivo.

          Por favor, revisa de nuevo cómo tienes los bloques y si ya los tienes de manera que cierras cada pantalla al abrir una nueva. Mándame unas imágenes de esos bloques para que pueda echar un vistazo y ayudarte en lo que pueda.

          Saludos y animo!

  9. vero on 29 julio, 2015 at 13:29 said:

    Hola quería saber si después de crear varias pantallas, como le asigno el orden , osea la última pantalla screen3 es el principal. Cómo o donde le asigno al proyecto que esta en la pantalla con la que debe comenzar.

  10. Ramonpi on 17 septiembre, 2015 at 21:58 said:

    Hola y muchas gracias por tu trabajo. Tengo un problema y no encuentro solución. Espero me puedas ayudar. Hice una aplicación con varias pantallas. En la pantalla principal puse un botón que clic cierra aplicación. En las otras pantallas tengo un botón que me devuelve a la pantalla principal (menú). Todo funciona bien, pero después de cambiar a varias pantallas, al volver a la principal, el botón de cerrar aplicación se comporta como un botón “atrás”, enviándome a la pantalla anterior, pero no cierra la aplicación.
    Nota: Utilizo app inventor 2 y la aplicación está descargada e instalada en el móvil, no es un problema del simulador. También probé en otro móvil y el resultado es el mismo. Puedes ayudarme?
    Gracias anticipadas.

    • Hola Ramonpi,

      Asegúrate de que cada vez que abres una nueva pantalla, cierras la anterior. Hay que tener mucho cuidado cuando se abren nuevas pantallas porque pueden provocar comportamientos extraños. Por ello es recomendable que cada vez que abras una nueva pantalla, el siguiente bloque que pongas sea “cerrar pantalla” para poder cerrar la anterior.

      Prueba y me dices si tienes dudas o cualquier problema.

      Gracias y saludos!

      • Bruno Garcia on 13 febrero, 2016 at 18:10 said:

        Hola, puedes explicar como se hace esto de cerrar cada pantalla en appinventor2

        • Hola Bruno,

          Para cerrar una pantalla en appinventor 2 tienes que utilizar un bloque que se llama “cerrar pantalla” en el apartado de bloques de “control”.

          Espero haberte ayudado, si no me dices si necesitas más ayuda.

          Saludos!

  11. cesar gomez on 30 octubre, 2015 at 6:26 said:

    hola, por favor su ayuda. en una appp de appinventor que estoy desarrollando, utilizo el activitystarter para abrir un mapa de google, ACTION android.intent.action.VIEW, la pregunta es : como hago para que automaticamente se cierre esa pagina/ventana y quede visible mi app. mil gracias

  12. Melissa on 28 febrero, 2016 at 23:00 said:

    Hola,
    Mira, te agradecería muchísimo si pudieras intentar solventar mi problema. El caso es que necesito pasar una ImageSprite de una Screen a otra Screen diferente.
    ¿Se puede hacer?
    Gracias,

    • Buenas Melissa,

      Te agradecería si pudieras explicarme un poco mejor lo que quieres conseguir. Tienes una imagenSprite en una screen y quieres que se muestre también en otra? Mándame un email y te responderé en cuanto pueda.

      Gracias!

  13. Marta on 11 marzo, 2016 at 21:53 said:

    Hola,
    Me gustaría mucho que me echaras una mano. Cuando inicie mi proyecto abrí dos Screen con un nombre concreto, pero ahora lo quiero cambiar. ¿Cómo lo puedo hacer?

    • Iker on 11 marzo, 2016 at 22:11 said:

      Hola Marta,

      El nombre de las pantallas no se puede cambiar, lo que sí se puede cambiar es el Título de cada una de ellas. Para ello en las propiedades de la pantalla hay una opción que es “Título” donde se puede poner lo que quieras.

      No se si he podido ayudarte en algo pero bueno, si tienes más dudas me dices.

      Gracias y saludos!

  14. Hola,usando app inventor 2 me veoen el inconveniente decrearmas de diez pantallasy me tira laalerta que teniendo mas de diez puede colapsar la aplicacion, habria alguna forma de saltar esta restricción? utilicelas opciones de ocultar contenido para apliarvarias ipciones en una sola screen pero aun asi necesito mas de diez, alguna idea?

    • Iker on 30 abril, 2016 at 9:38 said:

      Hola Daniel,

      ¿Has comprobado que cada vez que cambias de pantalla, la anterior se cierra? Porque de esa manera no debería darte problemas con las pantallas ya que solo tendrías 1 abierta cada vez. Es el método que se suele utilizar con las apps para no colapsar la memoria del dispositivo. Siempre hay que cerrar o “destruir” las pantallas anteriores

      Saludos!

  15. Maria Guadalupe Hernandez Chavez on 2 mayo, 2016 at 21:05 said:

    HOLA ! soy una estudiante de preparatoria y nueva en esto quisiera saber como meter 8 proyectos que se enlacen en un solo programa que con la pantalla de inicio (nombre del usuario , contraseña , iniciar sesión )y que de hay
    muestre los proyectos

    Saludos A todos !!!

    • Iker on 2 mayo, 2016 at 22:39 said:

      Hola,

      Necesitaría saber más información. Los proyectos que quieres meter, ¿cómo los quieres meter? ¿Con un enlace sirve? ¿o qué tipos de proyectos son?

      Por otro lado, para la pantalla de inicio con el nombre de usuario, y contraseña necesitarías seguramente una base de datos o acceso a una donde la app compruebe que el usuario y contraseña introducidos son correctos.

      Mándame un email si quieres explicando todo lo mejor posible y te ayudaré en lo que pueda.

      Saludos!

      • Maria Guadalupe Hernandez Chavez on 3 mayo, 2016 at 0:30 said:

        Pues es un proyecto en el cual tenemos ocho aplicaciones las cuales son basicas como una calculadora de fracciones,un traductor (…), deben de estar en un solo programa que al darle click te mande a ese programa seleccionado y ese unico programa debe contener las ocho aplicaciones con un login y una contraseña

        • Iker on 3 mayo, 2016 at 20:06 said:

          Hola,

          La idea que se me ha ocurrido es crear en una pantalla 2 cajas de texto para introducir el usuario y contraseña. Después habría que validarlo (eso es importante saber si hay muchos usuarios o no para utilizar una base de datos o un fichero). Y por último la siguiente pantalla podrías incluir unos botones que indiquen las distintas aplicaciones y que al hacer click se ejecuten.

          Esto haría que una vez que lances una aplicación no puedas volver al menú principal ya que simplemente es un lanzador de aplicaciones (porque son independientes). Si lo que te interesa es volver al menú una vez que cierres una aplicación, lo que tendrías que hacer es programar cada una de las aplicaciones dentro de esta aplicación para que formen parte de la misma.

          En caso de querer hacer un lanzador de aplicaciones utilizarías un componente llamado “compartir”.

          Me dices cual es tu idea y te ayudaré en lo que pueda.

          Saludos!

  16. Wilson on 27 mayo, 2016 at 14:16 said:

    Hola buenos días, podría alguien ayudarme con algo, he hecho varias pantallas que requiere conector a bluethoo, pero cuando paso de una a otra se desvincula y debo y conectar otra vez, le agradezco al que pueda ayudarme.

    • Iker on 28 mayo, 2016 at 14:55 said:

      Hola Wilson,

      ¿Podrías explicarme un poco más cómo te gustaría que funcionase? ¿Qué quieres conseguir con el bluetooth? ¿Qué dispositivo se tiene que conectar? ¿O es el propio dispositivo el que debe conectarse otro?

      Saludos!

  17. Francesc on 22 julio, 2016 at 0:54 said:

    Hola Iker,

    Tu página ha sido todo un descubrimiento para mí. Muchas gracias por compartir tus conocimientos con los que nos iniciamos en el App Inventor 2.

    Llevo 2 o 3 días diseñando una aplicación con varias ventanas y no consigo que cuando se abra una ventana nueva se cierre la anterior para así ahorrar recursos.

    Podrías colgar la última captura de pantalla de bloques de este artículo actualizada a App Inventor 2. Por más que busco los elementos de la captura actual no consigo localizarlos.

    ¡Muchas gracias!

    • Iker on 30 julio, 2016 at 10:05 said:

      Hola Francesc,

      Perdona el retraso en responder. En AppInventor 2 los elementos son los mismos que en el 1. Se usa un “procedimiento” al que le llamamos “abrirPantalla” y el resto son botones y piezas de control para “abrir otra pantalla” o “cerrar pantalla”.

      Si sigues sin poder encontrar alguna pieza dime cual en concreto y te ayudaré.

      Gracias y saludos!

  18. Hola soy nueva en esto, pero estoy haciendo un proyecto y me gustaría saber cómo puedo hacer para llamar las screen aleatoriamente y no en el mismo orden que este diseñada.
    Esperando contar con una respuesta favorable

    • Hola Ely,

      Lo que puedes hacer es llamar a cada pantalla con un número por ejemplo “pantalla1, pantalla2, etc” y cuando vas a abrir una nueva pantalla, a la hora de indicar el nombre de la pantalla que vas a abrir puedes utilizar el bloque de piezas “join” para indicarle en uno de los huecos la palabra “pantalla” y en el otro hueco usas la pieza “random integer from 1 to 3” por ejemplo en el caso de que tengas 3 pantallas. De esta forma abrirás aleatoriamente una de las pantallas que tengas.

      Espero haberte ayudado, si sigues con dudas dime.

      Saludos!

  19. hola gracias por esta explicación, me sacaste de un problemaso, pero arriba le explicas a Guido como cambiar el texto a un botón, lo hice y me funciono perfecto, pero si salgo de esa pantalla o cierro y abro la aplicación , no me recuerda el texto que puse, busque en internet y no encuentro nada, por favor si fueras tan amable me podrías ayudar y otra cosa esto mismo de tener varias pantallas como se podría hacer que se desplazarán horizontalmente, mil gracias

  20. Hola, me gustaría saber ¿Como hacer que una canción siga sonando de screen a screen? debido a que al momento de trasladarme a otro screen mi canción se detiene.

    • Iker on 9 octubre, 2016 at 11:23 said:

      Hola Pedro,

      ¿Cómo tienes hecho los bloques? Si utilizas un elemento Player para reproducir el archivo de audio tiene una propiedad que indica si debe reproducirse de fondo o no (por defecto está puesta a true por lo que no debería pararse la musica al cambiar de pantalla). La propiedad es “PlayOnlyInForeground”. Échale un vistazo a ver si puedes avanzar en este tema y sino mándame los bloques y te ayudaré en lo que pueda.

      Gracias y saludos!

  21. Jorge on 12 octubre, 2016 at 5:34 said:

    Hola que tal, tengo 3 dudas,
    1 Como hago para abrir otra pantalla y cerrar la anterior?
    2 Quiera insertar una nueva screen entre screen 1 y screen 2
    3 Yo estaba haciendo un curso didactico, pero queria qur el usarui cuando salga de la app y vuelva a entrar siga en el screen donde se quedo

    • Hola Jorge,

      – En el punto número 7 explico cómo abrir una pantalla y cerrar la pantalla anterior.
      – Realmente puedes definir todas las screens que quieras y en el orden que quieras. Lo que tienes que tener en cuenta es en qué orden vas a ir abriéndolas. Haz que esa nueva screen se abra antes de la 2 y listo.
      – Para este punto te recomiendo utilizar TinyDB. Es una mini base de datos donde puedes guardar por ejemplo el número de screen que se abre cada momento. De esta forma nada mas entrar en la app compruebas qué número se ha guardado y abres esa screen.

      Te dejo aquí el enlace de cómo utilizar TinyDB.
      http://aprenderaprogramarapps.es/2015/02/24/tinydb-en-app-inventor/

      Espero haberte ayudado.

      Saludos!

  22. Bernardo on 2 diciembre, 2016 at 3:06 said:

    Buenas noches, mi problema es:
    tengo la primera ventana (screen), al ingresar y dar clic direcciona a (menu2), dentro de menu2 hay 10 ventanas de selección al ingresar a una ventana accede, pero al devolverme a otra ventana dentro de menu2 generar un error que dice lo sentimos la app se detuvo, al darle aceptar al error este retorna a screen y vuelve a pasar lo mismo, llevo varias noches y no entiendo el porque pasa esto, tengo un video sobre el error si me dicen donde subirlo les agradezco.

    • Hola Bernardo,

      Es importante que cuando abras una nueva ventana, cierres la anterior ya que las aplicaciones no pueden soportar muchas ventanas abiertas al mismo tiempo. A mi me ha pasado que a la ventana número 5 ya se me bloqueaba. En este tutorial se puede ver cómo cada vez que se abre una ventana se cierra la anterior. Prueba con eso a ver si así te funciona. Si sigue sin funcionar mándame ese video que tienes sobre el error e intentaré ayudarte en lo que pueda.

      Saludos!

  23. Carlos on 28 diciembre, 2016 at 23:13 said:

    Hola,
    ya genere mi app con diferentes screens pero al momento de ejecutarla y al cambiar de ventana de la 2 a la 3 o cualquier orden, al abrir la nueva pantalla se tarda un segundo y regresa a la anterior, me esta faltando alguna instruccion?

    me podras ayudar por favor

    • Iker on 8 enero, 2017 at 10:43 said:

      Hola Carlos,

      No deberías tener problema si sigues los pasos del tutorial. De todas formas si quieres puedes enviarme por email unas imágenes de cómo tienes los bloques y te ayudaré en lo que pueda.

      Saludos!

  24. Daniel on 9 abril, 2017 at 0:37 said:

    Cuando dejo un campo de texto habilitado vacio me sale un error , al poner un notifier me sale el mensaje que pongo en el notifier pero antes me sigue saliendo un mensaje de error.

    • Iker on 9 abril, 2017 at 21:07 said:

      Hola Daniel,

      Necesitaría saber más datos sobre ese error. ¿Podrías enviarme por email capturas de pantalla de ese error y cómo tienes la disposición de los bloques por favor? Así sin más datos me resulta complicado saber cuál puede ser el problema.

      Saludos!

      • Daniel on 10 abril, 2017 at 18:08 said:

        Mi aplicación sería como una especie de calculadora con un botón titulado calcular al pulsarlo sino están los campos de texto rellenados con algún número la aplicación da un mensaje de error.
        En algunas pantallas he conseguido que al no introducir ningún dato en las campos de texto su valor sea cero ,pero me interesaría que en otras pantallas al faltar algún dato me salga un mensaje algo como “Rellenar todos los campo” por ejemplo.
        Un saludo y muchas gracias por responder.

        • Iker on 17 abril, 2017 at 10:43 said:

          Hola Daniel,

          Lo que puedes intentar hacer es comprobar si ese campo contiene algún dato antes de hacer la operación. Utiliza los bloques condicionantes para que si ese campo es distinto de vacío haga la operación, de lo contrario muestra un mensaje de error por pantalla para indicar al usuario que debe rellenar los datos.

          Espero que te sirva, si todavía tienes dudas dime y te ayudaré con los bloques, ¿ok?

          Gracias y saludos!

          • Daniel on 27 abril, 2017 at 18:12 said:

            Mi aplicación es una calculadora , en la zona del visor he puesto campos de texto habilitados solo con números para que los rellenen los usuarios, en medio un botón calcular y debajo varios campos de texto que serian los resultados de diferentes fórmulas ,cuando dejas un campo habilitado vacío en el sector de bloques le he configurado para que su valor sea 0 ,el problema me llega que dando un valor 0 a un campo de texto habilitado en algunas de las fórmulas no interfiere ese valor pero para otras si y da un resultado equívoco.
            En la zona bloques puse el condicionante si esta vacio campo de texto 5 habilitado
            entonces poner campo de texto (que seria el resultado de la fórmula que interfiere) 0 pero no me funciona.
            Gracias y un saludo

          • Daniel on 18 mayo, 2017 at 21:45 said:

            No sé como hacer para que no me haga la operación con los campos vacios.
            Me sale un mensaje de error al intentar hacer la operación y despues el mensaje de completar los datos que pongo en el notifier

  25. Daniel on 15 mayo, 2017 at 13:06 said:

    Queria saber tu email para mandarte capturas de mi problema

  26. alejandro on 6 junio, 2017 at 20:18 said:

    hola, soy nuevo en esto, mi proyecto es crear un libro, la pregunta es como puedo tener mas de 20 pantallas, App inventor no me deja crear mas de 10 pantallas, quisiera saber si hay alguna manera de poder solucionar.
    de antemano muchas gracias, SALUDOS!!

    • Iker on 11 junio, 2017 at 11:26 said:

      Hola Alejandro,

      Efectivamente hay un límite de pantallas que te permite crear AppInventor. Lo que tendrías que hacer en este caso es pensar alguna manera de que no necesites tener tantas pantallas. Eso será mejor para la app porque además consumirá menos recursos y funcionará mejor en más dispositivos. Mucha gente lo que suele hacer es utilizar menos pantallas y que simplemente cambie su contenido por ejemplo

      Espero haberte ayudado.

      Saludos!

      • alejandro on 13 junio, 2017 at 21:08 said:

        gracias!
        la verdad intente buscar por todos lados y no encontre una respuesta idónea.
        me podrias decir como hacer lo que dices, te agradeceria mucho

  27. Noelia on 16 junio, 2017 at 3:27 said:

    Hola, estoy haciendo mi primera aplicación en app inventor, mi consulta es saber si alguna forma de tener datos consistentes usando la tinyDB, son varios usuarios que cargan datos de campo, todo funciona bien, pero cuando cierro la aplicación se pierden los datos recolectados, inclusive los logins ya guardados. En ese caso que se puede utilizar para q se mantengan los datos almacenados persistentemente?

    Saludos

    • Iker on 17 junio, 2017 at 12:19 said:

      Hola Noelia,

      TinyDB sirve para guardar datos, aunque cierres la aplicación y siempre que no borres los datos o memoria que utilice. El problema es que está preparado para guardar una cantidad de datos muy pequeña como puede ser unos pocos parámetros de configuración. Si lo que quieres es guardar datos que rellenen los usuarios te recomiendo utilizar un sistema preparado para almacenar mayor cantidad de datos como puede ser “FusionTables”.

      No he tenido oportunidad de probar todavía las FusionTables pero se lo suficiente como para recomendar que las uses y que te servirán bien porque están preparadas para eso.

      Si ves que te resulta muy complicado puedes escribirme las dudas concretas que tengas y te ayudaré en lo que pueda, ¿de acuerdo?

      Saludos y mucho ánimo!

  28. Montero on 8 julio, 2017 at 19:13 said:

    Hola. Muchas Gracias por todos tus consejos. Aprendemos mucho de ellos.
    Estoy empezando en APP inventor 2 y tengo dudas de caracter general que quisiera saber antes de iniciar una apliación de control basada en Bluetooth. Mandaria instrucciones sobre un hardware que actuaria posteriormente. Mis dudas con:
    – ¿Hay alguna manera de tener un editor que sea mas grande?. ME explico. Voy a necesitar muchos botones, etiquetas, etc y seria imposible insertarlas y ubicarlas adecuadamente en tan poco espacio. No se que hacer. Si opto por repartir en varias ventanas….¿como pueden ver cada una de ellas lo que esta pasando en la otra?. Es decir, el programa debe saber lo que ocurre en los botones de las otras para tomar decisiones. Si cambio de ventana, creo que todo se pìerde. Es cierto?.
    – El modulo bluetooth se desconecta si cambio de ventana?. Si es así…¿hay alguna forma de que permanezca activo sin tener que volver a reconectar cada vez que cambie de ventana?.
    La idea es poner mantener la relacion entre las aplicaciones de cada ventana de manera que todas vean lo que ha ocurrido o esta ocurriendo en ellas para poder tomar decisiones…además de poder mantener “viva” la conexión bluetooth si tengo que cambiar de ventana.
    No se si pido demasiado o si hay alguna forma de que eso sea posible. Entiendo que si pudiese “meter” todo en la misma ventana…el problema desapareceria..¿no?. Pero lo veo imposible por ese tamaño tan pequeño del que dispone el Editor para diseñar la distribución de los componentes.
    Cualquier orientación que puedas darme, me serviria de gran ayuda.
    Muchas Gracias.
    Un Saludo

    • Iker on 9 julio, 2017 at 11:26 said:

      Hola Montero,

      Ya comprendo lo que quieres decir. Aunque no tengo mucha experiencia con el componente de Bluetooth, sí que tengo experiencia en programación y te daré mi consejo de igual forma.

      La idea de tener todo en una misma pantalla no es muy buena teniendo en cuenta que lo que estás programando es para un dispositivo móvil y eso quiere decir que la pantalla es pequeñita. Grandes paneles de control o de gestión para tener todo en una misma pantalla se hacen para ordenador, ya que se suele visualizar en pantallas más grandes que permiten ver todo de un vistazo.

      Para móvil la información tiene que estar muy bien distribuida y mostrar únicamente lo que es esencial en pantalla, el resto oculto en una pantalla de detalles que se pueda acceder desde un menú o un botón. En tu caso, entiendo que quieres mostrar botones o estados de ciertas situaciones. Teniendo más pantallas no debería haber problema con el Bluetooth, no debería desactivarse y además, es posible saber el estado de los componentes que están en otra pantalla por lo que es una opción para ti. El tema estaría en si realmente te conviene hacer en varias pantallas o no enfocándolo un poco de cara a la usabilidad del usuario. Puede que dividiendo en muchas pantallas no tenga sentido la app o si. Eso ya lo tendrás que saber tu.

      Si quieres puedes enviarme un email a ivillarroel.programarapps@gmail.com con algunos bocetos o imágenes de lo que quieres hacer y te puedo ayudar un poco a enfocar la solución más práctica en cada uno de los casos.

      Espero haberte aclarado algo.

      Saludos!

  29. Montero on 23 julio, 2017 at 13:23 said:

    Muchas Gracias por tu contestación y perdon por el retraso en la mia. He estado desconectado durante un tiempo.
    Mi problema es que necesito gestionar varias unidades al mismo tiempo y que estas se vean entre ellas. Es como si manejase varios mandos de TV a la vez, con la particularidad de que deben interrelacionarse entre ellos. Si no se desactiva el Bluetooth al cambiar de venta y las ventanas pudiesen “verse” entre ellas, estaria todo solucionado. Si veo que eso no funciona, optare por la inhibición de elementos para ganar sitio.

    Muchas Gracias de nuevo!

Deja un comentario

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

Post Navigation

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies