Análisis y Diseñode SoftwareDepartamento de Ingeniería de Sistemas Telemáticoshttp://moodle.dit.upm.esIntencionesActividad...
Intenciones 2Temario● 4.1 Introducción a Android● 4.2 Introducción Desarrollo con Android● 4.3 Ejemplo Desarrollo y Depura...
Intenciones 3TeoríaEjercicio práctico en el ordenadorAmpliación de conocimientosLectura / Vídeo / PodcastPráctica libre / ...
Intenciones 4● Android DevelopersBibliografíahttp://developer.android.com/training/basics/intents/index.html
Intenciones 5Objetivos● Aprender a hacer aplicaciones con más deuna pantalla● Entender cómo funciona el mecanismo deIntenc...
Intenciones 6Intenciones● Una aplicación en Android normalmentetiene varias actividades● Para pasar el control de una acti...
Intenciones 7Tipos de intenciones● Explícita: indicamos el componente (claseexacta) que va a ejecutar la intención● Implíc...
Intenciones 8Creando una intenciónimplícita● Las intenciones implícitas se construyenindicando– Acción: acción que queremo...
Intenciones 9Ej. Intención implícitapredefinida● Llamar por teléfono●Abrir una página webhttp://developer.android.com/guid...
Intenciones 10Intenciones explícitas● Indicamos de que actividad (this) a quéactividad queremos ir● Podemos pasar datos co...
Intenciones 11Actividades e IntencionesActividad MainSub-Actividad 1Sub-actividad 2Intent Result IntentAplicaciónAndroid
Intenciones 12Ejemplo pares acción / datos● ACTION_VIEW content://contacts/people/1 –muestra información sobre la persona ...
Intenciones 13Parámetros adicionales● Además de los parámetros principales,podemos detallar más– Type: MIME type, normalme...
Intenciones 14Acciones estándar paraIntenciones●ACTION_MAIN●ACTION_VIEW●ACTION_ATTACH_DATA●ACTION_EDIT●ACTION_PICK●ACTION_...
Intenciones 15Verificar intencionesimplícitas● En las intenciones implícitas, podemoscomprobar si algún componente va ares...
Intenciones 16Ej. mapas comprobando si esseguro
Intenciones 17Selección de aplicación porel usuario● Cuando hay variasaplicaciones quepueden realizar unaintención, el usu...
Intenciones 18Ej. chooser
Intenciones 19Formas de pasar el control
Intenciones 20Invocar una intención● startActivity(intent) → lanza una actividad● sendBroadcast(intent) → envía una intenc...
Intenciones 21Obtener un resultado
Intenciones 22onActivityResult()
Intenciones 23Filtros de intenciones (I)● Si queremos que una actividad nuestra pueda serlanzada por otra actividad de otr...
Intenciones 24Filtros de Intenciones (II)
Intenciones 25Varios filtros● Determinamos qué tipo de intención nosllamó si tenemos varios filtros
Intenciones 26Devolver resultado● Indicamos resultado con setResult() yfinish()...●Y así vuelve a la actividad que le llamó
Intenciones 27Ejemplo. Activar Accionesestándar●Vamos a hacer unejemplo– Llamar aintencionesestándar– Lanzar otrasactivida...
Intenciones 28Crear Lista OpcionesListView para ver una lista@android:id/list → layoutde Android para listas@android:id/em...
Intenciones 29Crear Lista opciones
Intenciones 30¡Lanzamos!
Intenciones 31Vamos a usar Intenciones
Intenciones 32Acción estándar: llamar
Intenciones 33Acción estándar:listar contactosHay quecrearlosen elemulador
Intenciones 34Acción estándar:editar/ver contacto
Intenciones 35Acción estándar: ver web
Intenciones 36Acción estándar:mandar correo
Intenciones 37Acción estándar:compartir
Intenciones 38Emulador vs realNo encuentra actividad quemande correoSí va en el teléfono
Intenciones 39Seleccionar un contacto● En este caso llamo a una actividad– Me devuelve un resultado● Con el resultado llam...
Intenciones 40Seleccionar un contacto
Intenciones 41Seleccionar un contactoNecesario para elcódigo anterior
Intenciones 42Pasar datos entreActividades● Tipos primitivos– Pasarlo en el Intent (con putExtra)– Si tiene que persistir,...
Intenciones 43Ejemplo ListaCompra. Editar
Intenciones 44Ejemplo ListaCompra. Añadir
Intenciones 45Ejemplo● Inspeccionar...– ¿Cómo guardamoslos productos?– ¿Cómo secomunican lasactividades?– ¿Cómo hacemos el...
Intenciones 46Resumen● En este tema hemos aprendido a– Definir preferencias de usuario, y usarlas en unprograma– Qué son l...
Intenciones 47¿Preguntas?
Upcoming SlideShare
Loading in...5
×

Tema 4.6 Intenciones

392

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
392
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Tema 4.6 Intenciones

  1. 1. Análisis y Diseñode SoftwareDepartamento de Ingeniería de Sistemas Telemáticoshttp://moodle.dit.upm.esIntencionesActividades que se comunicanCarlos A. Iglesias <cif@gsi.dit.upm.es>
  2. 2. Intenciones 2Temario● 4.1 Introducción a Android● 4.2 Introducción Desarrollo con Android● 4.3 Ejemplo Desarrollo y Depuración● 4.4 Actividades● 4.5 Interfaces de Usuario● 4.6 Intenciones● 4.7 Acceso a Datos● 4.8 Preferencias● 4.9 Hebras e internacionalización
  3. 3. Intenciones 3TeoríaEjercicio práctico en el ordenadorAmpliación de conocimientosLectura / Vídeo / PodcastPráctica libre / ExperimentaciónLeyenda
  4. 4. Intenciones 4● Android DevelopersBibliografíahttp://developer.android.com/training/basics/intents/index.html
  5. 5. Intenciones 5Objetivos● Aprender a hacer aplicaciones con más deuna pantalla● Entender cómo funciona el mecanismo deIntenciones en Android
  6. 6. Intenciones 6Intenciones● Una aplicación en Android normalmentetiene varias actividades● Para pasar el control de una actividad aotra usamos Intenciones (Intent)● Las actividades se comunican entre sí deforma asíncrona e indirecta
  7. 7. Intenciones 7Tipos de intenciones● Explícita: indicamos el componente (claseexacta) que va a ejecutar la intención● Implícita: el sistema determina (resuelve)qué componente debe procesar alintención.– Si hay más de una aplicación que puederealizar esa intención, el usuario puedeseleccionar cuál usar
  8. 8. Intenciones 8Creando una intenciónimplícita● Las intenciones implícitas se construyenindicando– Acción: acción que queremos ejecutar,predefinida (ACTION_VIEW, ACTION_DIAL,…) o creada por el usuario.– Datos: datos sobre los que opera la acciónexpresados como una URI (número deteléfono, contacto, ...)
  9. 9. Intenciones 9Ej. Intención implícitapredefinida● Llamar por teléfono●Abrir una página webhttp://developer.android.com/guide/appendix/g-app-intents.html
  10. 10. Intenciones 10Intenciones explícitas● Indicamos de que actividad (this) a quéactividad queremos ir● Podemos pasar datos con putExtra()– En la actividad que recibe la Intent, losrecupera con getExtras().getString(“clave”) (ogetBoolean(), getInt()... mirar api de Bundle).
  11. 11. Intenciones 11Actividades e IntencionesActividad MainSub-Actividad 1Sub-actividad 2Intent Result IntentAplicaciónAndroid
  12. 12. Intenciones 12Ejemplo pares acción / datos● ACTION_VIEW content://contacts/people/1 –muestra información sobre la persona con id 1● ACTION_DIAL content://contacts/people/1 – muestrael teléfono con el número marcado de la persona conid 1● ACTION_VIEW (o ACTION_DIAL) tel:134 – muestrael teléfono con el número 134 marcado● ACTION_EDIT content://contacts/people/1 – edita lainformación del contacto con id 1● ACTION_VIEW content://contacts/people – muestrauna lista de contactos
  13. 13. Intenciones 13Parámetros adicionales● Además de los parámetros principales,podemos detallar más– Type: MIME type, normalmente se pone biensolo.– Extras: añadir más datos para una acción.P.ej. Para email (subject, body, …)
  14. 14. Intenciones 14Acciones estándar paraIntenciones●ACTION_MAIN●ACTION_VIEW●ACTION_ATTACH_DATA●ACTION_EDIT●ACTION_PICK●ACTION_CHOOSER● ACTION_GET_CONTENT●ACTION_DIAL●ACTION_CALL●ACTION_SEND●ANCTION_SENDTO●ACTION_ANSWER●ACTION_INSERT●ACTION_DELETE●ACTION_RUN●ACTION_SYNC●ACTION_PICK_ACTIVITY●ACTION_SEARCH●ACTION_WEB_SEARCH●ACTION_FACTORY_TESThttp://developer.android.com/reference/android/content/Intent.html
  15. 15. Intenciones 15Verificar intencionesimplícitas● En las intenciones implícitas, podemoscomprobar si algún componente va aresponder a la intención● P.ej. En nuestro teléfono no hay unacaracterística
  16. 16. Intenciones 16Ej. mapas comprobando si esseguro
  17. 17. Intenciones 17Selección de aplicación porel usuario● Cuando hay variasaplicaciones quepueden realizar unaintención, el usuariopuede escoger unapor defecto● En otras ocasiones,queremos queescoja cada vez, seutiliza un chooser
  18. 18. Intenciones 18Ej. chooser
  19. 19. Intenciones 19Formas de pasar el control
  20. 20. Intenciones 20Invocar una intención● startActivity(intent) → lanza una actividad● sendBroadcast(intent) → envía una intención a todoslos componentes BroadcastReceiver● startActivityForResult(intent, requestCode) →– lanza una actividad, que devuelve un resultado consetResult(resultCode), predefinidos: RESULT_OK oRESULT_CANCELED, o bien personalizadoscomenzando en RESULT_FIRST_USER.• Para volver a la actividad anterior llamamos a finish() paraterminar la actividad– La actividad recibe el resultado en el método de callbackonActivityResult(requestCode,resultCode,intent)
  21. 21. Intenciones 21Obtener un resultado
  22. 22. Intenciones 22onActivityResult()
  23. 23. Intenciones 23Filtros de intenciones (I)● Si queremos que una actividad nuestra pueda serlanzada por otra actividad de otra aplicación, debemosindicar un intent-filter en el manifiesto. Declaramos– Action – nombre de la acción que realizamos.Normalmente uno predefinido como ACTION_SEND (paracompartir) o ACTION_VIEW– Data – descripción de los datos asociados: tipo mime(text/plain) o prefijo URI (htt) o una combinación– Categoría: gesto o sitio desde puede ser llamado,normalmente CATEGORY_DEFAULT
  24. 24. Intenciones 24Filtros de Intenciones (II)
  25. 25. Intenciones 25Varios filtros● Determinamos qué tipo de intención nosllamó si tenemos varios filtros
  26. 26. Intenciones 26Devolver resultado● Indicamos resultado con setResult() yfinish()...●Y así vuelve a la actividad que le llamó
  27. 27. Intenciones 27Ejemplo. Activar Accionesestándar●Vamos a hacer unejemplo– Llamar aintencionesestándar– Lanzar otrasactividades
  28. 28. Intenciones 28Crear Lista OpcionesListView para ver una lista@android:id/list → layoutde Android para listas@android:id/empty → si lalista está vacía
  29. 29. Intenciones 29Crear Lista opciones
  30. 30. Intenciones 30¡Lanzamos!
  31. 31. Intenciones 31Vamos a usar Intenciones
  32. 32. Intenciones 32Acción estándar: llamar
  33. 33. Intenciones 33Acción estándar:listar contactosHay quecrearlosen elemulador
  34. 34. Intenciones 34Acción estándar:editar/ver contacto
  35. 35. Intenciones 35Acción estándar: ver web
  36. 36. Intenciones 36Acción estándar:mandar correo
  37. 37. Intenciones 37Acción estándar:compartir
  38. 38. Intenciones 38Emulador vs realNo encuentra actividad quemande correoSí va en el teléfono
  39. 39. Intenciones 39Seleccionar un contacto● En este caso llamo a una actividad– Me devuelve un resultado● Con el resultado llamo a otra actividad● Para esto, uso– startActivityForResult()– onActivityResult()
  40. 40. Intenciones 40Seleccionar un contacto
  41. 41. Intenciones 41Seleccionar un contactoNecesario para elcódigo anterior
  42. 42. Intenciones 42Pasar datos entreActividades● Tipos primitivos– Pasarlo en el Intent (con putExtra)– Si tiene que persistir, usar Preferencias● Objetos no persistentes– Usar una clase Singleton– Las actividades extienden la clase android.app.Application yrecuperan los campos con getApplicationContext()● Objetos persistentes:– Preferencias, Base de Datos, Proveedores de Contenidos,Ficheroshttp://developer.android.com/guide/faq/framework.html
  43. 43. Intenciones 43Ejemplo ListaCompra. Editar
  44. 44. Intenciones 44Ejemplo ListaCompra. Añadir
  45. 45. Intenciones 45Ejemplo● Inspeccionar...– ¿Cómo guardamoslos productos?– ¿Cómo secomunican lasactividades?– ¿Cómo hacemos elmenú?
  46. 46. Intenciones 46Resumen● En este tema hemos aprendido a– Definir preferencias de usuario, y usarlas en unprograma– Qué son las intenciones, y comunicaractividades mediante ellas– Algunas acciones estándar para lanzaractividades
  47. 47. Intenciones 47¿Preguntas?
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×