Escuela Superior de Ingeniería



Documentos relacionados

Guía de instalación del software de la asignatura

Crear una Activity en Android. Paso por paso

Desarrollo de apps para móviles Android. Entorno de desarrollo

INTRODUCCIÓN.

Instalación De ANDROID STUDIO

Tutorial 1. Instalación del entorno de desarrollo de Android. Curso de perfeccionamiento: Programación de Android TUTORIAL 1: INSTALACIÓN DEL SOFTWARE

Desarrollo de apps para móviles Android. Conceptos básicos de las aplicaciones Android

Parsear HTML con htmlparser para Android Guillem Pérez

PRACTICAS DE ANDROID 12 - Lanzar un segundo "Activity" y pasar parámetros Problema:

Android Creación de una aplicación sencilla: Forwarding - Página 1 -

1.1. Instalación del entorno de desarrollo

Mi Primer Proyecto en Android Studio

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación

Hands-On Lab. Windows Azure: Java, Eclipse y Azure. Última Actualización: 16/12/2011

Descarga, instalación y uso de herramientas:

Temas. CopyRight emmmnmmma - All rights reserved 2

Instalación de DRIVER de mochila

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

Tema 2: Introducción a Android

Copias de seguridad con SQL Server 2005 WhitePaper Febrero de 2008

Se ha confeccionado una aplicación sencilla para poder probar el interfaz de gestión explotación de MEGA, Modelo Estandarizado de Gestión de Agua.

Tema 2: Diseño de servicios para móviles

CONFIGURACIÓN DE SOFTPHONES

JOOMLA MANUAL USUARIO Creación del portal

CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa

Manual de usuario de Windows Live Writer

Tutorial: Instalación de Eclipse para programar Android en Windows

AVD, el emulador de Smartphone y Tablets Android que incluye el SDK de Google

COMO CREAR UN PROYECTO EN ANDROID. Para crear un proyecto en androide se necesitamos los siguientes software para realizar lo en un simulador.

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta

Manual de NetBeans y XAMPP

INTRANET: MANUAL DE INSTALACIÓN

Programación en Android LSUB, GSYC, URJC

Ejecutar el instalador y seleccionar los paquetes necesarios. En nuestro caso son los siguientes: Android SDK Tools (ya vendrá instalado) Android SDK

JOOMLA MANUAL USUARIO Creación del portal

Ejercicios - Persistencia en Android: ficheros y SQLite

Copias de Seguridad con SQL Server Realizar una copia de seguridad de Bases de Datos

MANUAL DE AYUDA. SAT Móvil (Movilidad del Servicio Técnico)

Escuela Superior de Ingeniería. Creación de un servicio Web REST y su despliegue en Tomcat

StarWind

Tenemos que instalar los programas de los usuarios también (los anteriormente mencionados) y los siguientes que vamos a nombrar.

Entorno de desarrollo Instalación y configuración

Administración de portales Joomla (III)

Tarea 1 Programación José Luis Comesaña

Guía de uso del Cloud Datacenter de acens

TUTORIAL ACADÉMICO. Programación II- Taller de Programación I Fa.CENA. UNNE

Autoguiado en 6 pasos

Guía de Instalación del servicio de BackupOnline de Idecnet. Indice

Taller Práctico Creación de un LO IMS/SCORM

MANUAL PARA CONFIGURACIÓN DEL COMPUTADOR DE LOS USUARIOS PARA EL USO DEL SISDON

Ayuda para la instalación Componente Firma Digital INDICE. 1 Configuración previa Configuración Internet Explorer para ActiveX...

Manual de Instalación del Certificado ACA en Windows 8.1

T3-Rondas V 1.1. Help-Pc, S.L. C/ Pintor Pau Roig, 39 L Premià de Mar Barcelona Tel. (93) Fax marketing@t2app.

Ejercicios - Servicios

Conexión de GPS a Open CPN.

GVisualPDA Módulo de Almacén

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Instalación de ActivePerl en MS Windows

Escritorio remoto y VPN. Cómo conectarse desde Windows 7

Manual de usuario de Parda Programa de Almacenamiento y Recuperación de Datos Automático

Practica 1 Estructura De Un Proyecto En ANDROID

Manual de instalación y manejo de CyberTracker

Ejercicio 4. Manejo de Layouts en Android. Android Con Java. Ejercicio 4. Manejo de Layouts en Android. Curso de Android con Java

INSTALACIÓN DE OPENOFFICE

MANUAL DE AYUDA PARA LA UTILIZACIÓN DEL LECTOR DE TARJETAS SI NO POSEE EL CD DE INSTALACION DEL LECTOR DE TARJETAS DEBE SEGUIR LOS SIGUIENTES PASOS.

axtpv - Manual del usuario axtpv Profesional

Instalar PhotoGestión en un Mac con VirtualBox

PROCESO DE INSTALACIÓN Y CONFIGURACIÓN DE APACHE, PHP Y MySQL

Programación Android. Alejandro Alcalde. elbauldelprogramador.com

Entorno de Desarrollo - 1 -

Instalación de Eclipse Galileo y depuradores compatibles con OpenMPI y OpenMP

Cómo acceder a Google Drive? Tiene más funcionalidades una cuenta de Google?

Cristian Blanco

Técnicas y Herramientas de Protección de Redes, Sistemas y Servicios

Cómo instalar fácilmente tu WordPress tras contratar un hosting en Hostalia

- 1 - ÍNDICE. Haga clic en Instalar Software. PASO 3: Primero le hará falta elegir su lengua en esta pantalla:

Configuración de myapps

UNIVERSIDAD TÉCNICA DEL NORTE

Entorno de desarrollo

JOOMLA MANUAL USUARIO Creación del portal

Instalación del entorno de desarrollo

MANUAL DE INSTALACIÓN DEL KIT ACA

GUIA DE BLOQUEO Y DESBLOQUEO WEB

Desarrollo de una aplicación de ejemplo: movilidapp. Desarrollado por movilidapp

Manual Configuración Orderman en el Software Glop. Configuración de terminales orderman en el software Glop para Hostelería.

REGISTRAR LOS SITIOS WEB MÁS INTERESANTES

Universidad de Puerto Rico Recinto de Mayagüez. Manual de instalación de Eclipse con el kit de desarrollo de Android. Dan Alberto Rosa de Jesús

Servicios - Ejercicios

Las redes y su seguridad

Manual de migración a Joomla! 3.4.0

Control de presencia para terminal por huella dactilar

Creación de materiales didácticos Aplicaciones para dispositivos móviles Lección 4

Kosmo Desktop Manual de desarrollo Instalación y configuración del código fuente de Kosmo en Eclipse

INDICE Qué es SQLyog Instalación del programa...4

1 Itinerario. 2 Descripción y funcionalidades principales. Google Docs. 1.1 Qué vamos a hacer? 1.2 Qué pasos vamos a seguir?

INSTALACIÓN DE MySQL Índice de contenido

NORMA 34.14(SEPA) 05/11/2013

COPIAR CORREOS ENTRE CUENTAS USANDO IMAPSIZE

Transcripción:

Escuela Superior de Ingeniería Programación en Internet Grado en Ingeniería Informática Invocación de un servicio web REST desde una aplicación Android Autores: Javier Montes Cumbrera y Salvador Carmona Román Supervisores: Juan Boubeta Puig y Guadalupe Ortiz Bellot Cádiz, 27 de mayo de 2015

Índice general 1. Software necesario 3 1.1. SDK Android & Android 4.2....................... 3 1.2. Complemento para Eclipse........................ 5 2. Creación e implementación del proyecto 7 2.1. Creación del proyecto........................... 7 2.2. Añadiendo elementos a la vista principal................ 7 2.3. Creación de la clase principal...................... 9 2.4. Creación de la tarea en segundo plano................. 10 2.4.1. doinbackground.......................... 11 2.4.2. onpostexecute........................... 11 2.5. Añadiendo los permisos necesarios.................... 12 3. Probando la aplicación 13 3.1. Creando el dispositivo virtual...................... 13 3.2. Ejecutando el proyecto.......................... 13 Bibliografía 17 A. Layout activity_main 19 B. Clase MainActivity 21 C. Clase Miembros 23 i

Índice de figuras 1.1. Visión del SDK Manager......................... 4 2.1. File > > New > > Other......................... 8 2.2. Selección de Android Aplication Project................. 8 2.3. Configuración del proyecto Android................... 9 3.1. Opción Android Virtual Device Manager del menú Window...... 14 3.2. Configuración para el Android Device.................. 14 3.3. Resultado de la ejecución de nuestra aplicación............. 15 1

Índice de figuras 2

1. Software necesario Para poder seguir este tutorial es necesario que tengamos instalado el siguiente software: Eclipse [1]. SDK Android [3]. Complemento para Eclipse [2]. Android 4.2 y complementos. 1.1. SDK Android & Android 4.2 Para descargarnos el SDK de Android tendremos que ir hasta su página oficial [3] y hacer clic en Download > > Installing the SDK > > Standalone SDK Tools > > Download the SDK now > > SDK Tools Only > > Descargar el standalone Android SDK Tools para Windows. Una vez tengamos descargado el SDK de Android lo descomprimimos, en nuestro caso será dentro de nuestra carpeta development, y dentro de la carpeta buscaremos la aplicación SDK Manager. Después de que se abra la aplicación veremos muchos paquetes para poder instalar, tendremos que seleccionar los siguientes: Android SDK Tools Android SDK Platform-tools Android SDK Build-tools 22.0.1 Android 4.2.2 Android Support Library Google USB Driver Cuando haya finalizado la descarga podremos ver algo parecido a la Figura 1.1. 3

1. Software necesario Figura 1.1.: Visión del SDK Manager 4

1.2. Complemento para Eclipse 1.2. Complemento para Eclipse Para poder instalar el complemento necesario para seguir el tutorial, tendremos que seleccionar la opción Help > > Install New Software en Eclipse. A continuación, pulsamos en el botón Add..., en el campo Name indicamos Complemento Google Android y en el campo Location la URL del plugin (https://dlssl.google.com/android/eclipse). Finalmente, seleccionamos Developer Tools y lo instalamos. 5

1. Software necesario 6

2. Creación e implementación del proyecto En esta sección, crearemos un proyecto y lo dotaremos de la funcionalidad necesaria para mostrar todos los miembros del comité de programa de una conferencia almacenados en el servicio web previamente creado (véase el tutorial «Creación de un servicio Web REST y su despliegue en Tomcat»). 2.1. Creación del proyecto Una vez instalado todo el software necesario, tenemos que crear un nuevo proyecto en Eclipse; este proyecto tendrá que ser del tipo Android Aplication Project. Para ello, hacer clic en File > > New > > Other (véase Figura 2.1). Buscamos en la lista de opciones la categoría Android y, dentro de ella, seleccionamos Android Aplication Project (véase Figura 2.2). Como nombre de la aplicación y el proyecto utilizaremos WoEAndroid, un nombre similar al que hemos venido utilizando hasta ahora, y como nombre del paquete utilizaremos uca.es.woeandroid. Además, hay que establecer la versión de Android que hayamos descargado, en nuestro caso será Android 4.2. El resultado de la configuración tendrá que ser algo parecido a lo mostrado en la Figura 2.3. Pulsamos en siguiente hasta que nos deje elegir qué tipo de activity principal queremos y seleccionamos Blank activity. El nombre de la activity lo dejaremos tal y como aparece por defecto. 2.2. Añadiendo elementos a la vista principal Antes de añadir funcionalidad a nuestra aplicación Android, tendremos que retocar el fichero activity_main.xml se encuentra dentro de res/layout para que tenga una lista donde mostraremos el resultado de nuestra petición al servicio. Para poder añadir el elemento lista, abriremos el fichero y nos pasaremos a la vista del código. Dentro de este código tendremos que borrar el código correspondiente a la etiqueta TextView y sustituirlo por el que encontramos en el Listado 2.1 (véase Anexo A). 7

2. Creación e implementación del proyecto Figura 2.1.: File > > New > > Other Figura 2.2.: Selección de Android Aplication Project 8

2.3. Creación de la clase principal Figura 2.3.: Configuración del proyecto Android Listado 2.1: Código para la vista principal 1 <ListView android : id ="@+id / _listamiembros " 2 android : layout_width ="240dp " 3 android : layout_height ="match_parent " 4 android : layout_gravity =" s t a r t " 5 android : choicemode=" s i n g l e C h o i c e " 6 android : d i v i d e r ="@android : c o l o r / t r a n s p a r e n t " 7 android : d i v i d e r H e i g h t ="0dp " 8 android : background="#111"/> 2.3. Creación de la clase principal En nuestra clase principal (MainActivity.java) tendríamos que realizar las diferentes llamadas a nuestro servicio web, pero en Android no está permitido hacer llamadas a funciones que puedan tardar mucho o un tiempo indeterminado en responder. Para salvar este problema vamos a crear una clase externa que sea una tarea asíncrona. Así que, después de quitarle bastante peso lógico a nuestra clase principal, esta solo deberá encargarse de identificar los diferentes componentes que se encuentren en pantalla para darle funcionalidad y poder mostrar los diferentes resultados. 9

2. Creación e implementación del proyecto Lo primero que tendremos que hacer en nuestra clase principal será añadir una lista y su adaptador para poder actualizar los datos con los resultados de nuestra tarea asíncrona. Como podemos ver en el Listado 2.2, la hemos creado como variables privadas para que no sean accesibles desde el exterior (véase el código completo en el Anexo B). Listado 2.2: Declaración de variables privadas 1 p r i v a t e ListView _mmiembros ; 2 p r i v a t e ArrayAdapter<String > _amiembros ; Dentro del método oncreate tendremos que enlazar la lista que acabamos de crear con la que se encuentra en la vista y también tendremos que crear una nueva instancia del adaptador. En la línea 1 del Listado 2.3 puede comprobarse que hemos utilizado la función findviewbyid para enlazar los objetos, y en la siguiente línea hemos creado una nueva instancia del adaptador indicando que será de tipo lista simple. Listado 2.3: Inicialización de las variables privadas 1 _mmiembros = ( ListView ) findviewbyid (R. id. _listamiembros ) ; 2 _amiembros = new ArrayAdapter<String >( t h i s, android.r. layout. simple_list_item_1 ) ; Tras inicializar todas nuestras variables, procederemos a llamar a nuestra tarea asíncrona pasándole como parámetros nuestras variables e indicándole que ejecute su función (véase Listado 2.4). Listado 2.4: Código para la instanciación y ejecución de la tarea asíncrona 1 Miembros miembros = new Miembros ( getapplicationcontext ( ),_mmiembros, _amiembros ) ; 2 miembros. execute ( ) ; 2.4. Creación de la tarea en segundo plano Nuestra tarea en segundo plano no tiene un fichero ya creado con nuestra activity principal, por lo que crearemos un fichero Java que albergue nuestra clase, denominada Miembros botón derecho sobre el proyecto WoEAndroid > New > Class > Name: Miembros. Al ser una tarea asíncrona, esta tendrá que ser una extensión de AsyncTask, por lo que el cuerpo de nuestra clase quedaría tal y como se muestra en el Listado 2.5. Listado 2.5: Clase Miembros recién creada 1 p u b l i c c l a s s Miembros extends AsyncTask <Void, Void, String > { 2 } 10

2.4. Creación de la tarea en segundo plano Los tres parámetros que hemos especificado son necesarios para este tipo de clase, ya que identifican qué tipo de parámetros reciben los métodos doinbrackgrund(), onprogressexecute() y onpostexecute(). Así pues, nuestro método doinbackground devolverá un String y el método onpostexecute recibirá el String. Solamente tendremos que implementar los métodos doinbackground y onpostexecute, puesto que no se requiere sobreescribir los otros métodos. 2.4.1. doinbackground En este método se ejecutará la petición a nuestro servicio web y devolverá el resultado al método onpostexecute. Para poder realizar la conexión con nuestro servicio web tendremos que crear un nuevo cliente HTTP y una petición GET, ayudándonos de la clase HttpGet. A la hora de instanciar un objeto de la clase HttpGet tendremos que iniciarlo con la URL a la que queramos hacer la petición (véase Listado 2.6). Listado 2.6: Variables necesarias para iniciar la petición HTTP 1 HttpClient h t t p C l i e n t = new DefaultHttpClient ( ) ; 2 HttpGet httpget = new HttpGet ( " http : / / " + _stuip + " : 8 0 8 0 / WoERest/ Rest / allmembers " ) ; Como podemos observar en la línea 2 del Listado 2.6, existe una variable llamada _stuip, esta variable contendrá la IP del ordenador donde se encuentre el servicio web. En otras ocasiones hemos llamado al servicio web mediante la dirección localhost pero, en este caso, si utilizásemos localhost estaríamos haciendo referencia al propio dispositivo dando, por tanto, un fallo de conexión. Después de tener las variables creadas, indicaremos el tipo de respuesta que estamos esperando y también recogeremos la respuesta en una variable de tipo HttpResponse, que posteriormente convertiremos a String para ser devuelta (véase Listado 2.7). Listado 2.7: Código para la recepción de una respuesta HTTP 1 httpget. setheader ( " content type ", " a p l i c a t i o n / j s o n " ) ; 2 HttpResponse response = h t t p C l i e n t. execute ( httpget ) ; 3 S t r i n g r e s p S t r = E n t i t y U t i l s. t o S t r i n g ( response. getentity ( ) ) ; 4 return r e s p S t r ; 2.4.2. onpostexecute Una vez que tenemos la respuesta de nuestro servicio es necesario tratarla y mostrar los resultados en la vista principal. Para ello, vamos a crear un JSONArray que contendrá todos los JSON que estén dentro de la respuesta, lo recorreremos 11

2. Creación e implementación del proyecto añadiendo los nombres de los miembros al adaptador y, posteriormente, haremos los cambios visibles (véase Listado 2.8). Listado 2.8: Código para mostrar los resultados 1 S t r i n g nombre = n u l l ; 2 JSONArray a = new JSONArray ( r e s u l t ) ; 3 i n t r e g i s t r o s = a. l e n g t h ( ) ; 4 f o r ( i n t i = 0 ; i < r e g i s t r o s ; i ++) { 5 nombre = a. getjsonobject ( i ). g e t S t r i n g ( " nombre " ) ; 6 _amiembros. add ( nombre ) ; 7 } 8 _llistresultado. setadapter ( _amiembros ) ; 2.5. Añadiendo los permisos necesarios Tras añadir las funcionalidades a nuestra aplicación Android podríamos probarla, pero nos daría error de conexión. Esto se debe a que no hemos configurado todavía nuestra aplicación para que pueda utilizar la conexión a Internet. Para poder conectarnos a Internet hay que añadir el código del Listado 2.9 en el fichero AndroidManifest.xml. Listado 2.9: Permisos necesarios para Internet 1 <uses permission android : name="android. permission.internet" /> 2 <uses permission android : name="android. permission.access_network_state" /> 12

3. Probando la aplicación Al finalizar todos los pasos de este tutorial, la aplicación está lista para ser probada. Pero antes tendremos que añadir un dispositivo virtual que sea capaz de ejecutar nuestra aplicación. 3.1. Creando el dispositivo virtual Para crear el dispositivo virtual tendremos que hacer clic en el menú Window y seleccionar la opción Android Virtual Device Manager (véase Figura 3.1). A continuación, debemos hacer clic en el botón New y rellenaremos la pantalla con la información que podemos ver en la Figura 3.2. Una vez que todo esté correctamente rellenado, hay que hacer clic en Ok y cerrar la ventana. 3.2. Ejecutando el proyecto Para poder ejecutar la aplicación, bastará con hacer clic derecho en nuestro proyecto WoEAndroid y ejecutarlo como aplicación Android. Si todo ha funcionado correctamente, en nuestra aplicación deberá haberse cargado todos los miembros del comité de programa de la conferencia que tengamos en nuestro servicio web, como se muestra en la Figura 3.3. 13

3. Probando la aplicación Figura 3.1.: Opción Android Virtual Device Manager del menú Window Figura 3.2.: Configuración para el Android Device 14

3.2. Ejecutando el proyecto Figura 3.3.: Resultado de la ejecución de nuestra aplicación 15

3. Probando la aplicación 16

Bibliografía [1] Eclipse IDE for Java EE Developers Packages (2015), https://eclipse.org/ downloads/packages/eclipse-ide-java-ee-developers/lunar [2] Plugin Eclipse (2015), http://developer.android.com/sdk/installing/ installing-adt.html [3] SDK Android (2015), https://developer.android.com/sdk/index.html 17

Bibliografía 18

A. Layout activity_main En este anexo se encuentra el código necesario para el layout de la aplicación Android. 1 <RelativeLayout xmlns : android="http : / / schemas. android. com/apk/ r e s / android " 2 xmlns : t o o l s ="http : / / schemas. android. com/ t o o l s " 3 android : layout_width="match_parent " 4 android : layout_height ="match_parent " 5 android : paddingbottom="@dimen/ a c t i v i t y _ v e r t i c a l _ m a r g i n " 6 android : paddingleft ="@dimen/ activity_horizontal_margin " 7 android : paddingright="@dimen/ activity_horizontal_margin " 8 android : paddingtop="@dimen/ a c t i v i t y _ v e r t i c a l _ m a r g i n " 9 t o o l s : context ="uca. es. woeandroid. MainActivity " > 10 11 <ListView android : id ="@+id / _listamiembros " 12 android : layout_width ="240dp " 13 android : layout_height ="match_parent " 14 android : layout_gravity =" s t a r t " 15 android : choicemode=" s i n g l e C h o i c e " 16 android : d i v i d e r ="@android : c o l o r / t r a n s p a r e n t " 17 android : d i v i d e r H e i g h t ="0dp " /> 18 19 </RelativeLayout > 19

A. Layout activity_main 20

B. Clase MainActivity En este anexo se encuentra todo el código de la clase principal de la aplicación Android. 1 package uca. e s. woeandroid ; 2 3 import android. app. A c t i v i t y ; 4 import android. os. Bundle ; 5 import android. view. Menu ; 6 import android. view. MenuItem ; 7 import android. widget. ArrayAdapter ; 8 import android. widget. ListView ; 9 10 p u b l i c c l a s s MainActivity extends A c t i v i t y { 11 p r i v a t e ListView _mmiembros ; 12 p r i v a t e ArrayAdapter<String > _amiembros ; 13 14 @Override 15 p r o t e c t e d void oncreate ( Bundle s a v e d I n s t a n c e S t a t e ) { 16 super. oncreate ( s a v e d I n s t a n c e S t a t e ) ; 17 setcontentview (R. layout. activity_main ) ; 18 19 _mmiembros = ( ListView ) findviewbyid (R. id. _listamiembros ) ; 20 _amiembros = new ArrayAdapter<String >( t h i s, android.r. layout. simple_list_item_1 ) ; 21 22 Miembros miembros = new Miembros ( getapplicationcontext ( ), _mmiembros, _amiembros ) ; 23 miembros. execute ( ) ; 24 } 25 26 @Override 27 p u b l i c boolean oncreateoptionsmenu (Menu menu) { 28 // I n f l a t e the menu ; t h i s adds items to the a c t i o n bar i f i t i s p r e s e n t. 29 getmenuinflater ( ). i n f l a t e (R. menu. main, menu) ; 30 return true ; 31 } 32 33 @Override 34 p u b l i c boolean onoptionsitemselected ( MenuItem item ) { 35 // Handle a c t i o n bar item c l i c k s here. The a c t i o n bar w i l l 21

B. Clase MainActivity 36 // a u t o m a t i c a l l y handle c l i c k s on the Home/Up button, so long 37 // as you s p e c i f y a parent a c t i v i t y in AndroidManifest. xml. 38 i n t id = item. getitemid ( ) ; 39 i f ( id == R. id. a c t i o n _ s e t t i n g s ) { 40 return true ; 41 } 42 return super. onoptionsitemselected ( item ) ; 43 } 44 } 22

C. Clase Miembros En este anexo se encuentra todo el código de la tarea asíncrona de nuestra aplicación Android. 1 package uca. e s. woeandroid ; 2 3 import org. apache. http. HttpResponse ; 4 import org. apache. http. c l i e n t. HttpClient ; 5 import org. apache. http. c l i e n t. methods. HttpGet ; 6 import org. apache. http. impl. c l i e n t. DefaultHttpClient ; 7 import org. apache. http. u t i l. E n t i t y U t i l s ; 8 import org. j s o n. JSONArray ; 9 import org. j s o n. JSONException ; 10 11 import android. content. Context ; 12 import android. os. AsyncTask ; 13 import android. widget. ArrayAdapter ; 14 import android. widget. ListView ; 15 16 p u b l i c c l a s s Miembros extends AsyncTask <Void, Void, String >{ 17 18 p r i v a t e S t r i n g _stuip = " 1 0. 2 1 1. 5 5. 3 " ; 19 p r i v a t e Context _context ; 20 p r i v a t e ListView _llistresultado ; 21 p r i v a t e ArrayAdapter<String > _amiembros ; 22 23 Miembros ( Context context, ListView mmiembros, ArrayAdapter<String > amiembros ) { 24 _context = context ; 25 _llistresultado = mmiembros ; 26 _amiembros = amiembros ; 27 } 28 29 @Override 30 p r o t e c t e d S t r i n g doinbackground ( Void... params ) { 31 S t r i n g r e s p S t r = n u l l ; 32 HttpClient h t t p C l i e n t = new DefaultHttpClient ( ) ; 33 HttpGet httpget = new HttpGet ( " http ://"+ _stuip + " : 8 0 8 0 / WoERest/ Rest / allmembers " ) ; 34 httpget. setheader ( " content type ", " a p l i c a t i o n / j s o n " ) ; 35 HttpResponse response ; 36 try { 23

C. Clase Miembros 37 r esponse = h t t p C l i e n t. execute ( httpget ) ; 38 r e s p S t r = E n t i t y U t i l s. t o S t r i n g ( response. getentity ( ) ) ; 39 } catch ( Exception e ) { 40 e. printstacktrace ( ) ; 41 } 42 return r e s p S t r ; 43 } 44 45 p r o t e c t e d void onpostexecute ( S t r i n g r e s u l t ) { 46 S t r i n g nombre = n u l l ; 47 JSONArray a ; 48 try { 49 a = new JSONArray ( r e s u l t ) ; 50 i n t r e g i s t r o s = a. l e n g th ( ) ; 51 f o r ( i n t i = 0 ; i < r e g i s t r o s ; i++){ 52 nombre = a. getjsonobject ( i ). g e t S t r i n g ( " nombre " ) ; 53 _amiembros. add ( nombre ) ; 54 } 55 } catch ( JSONException e ) { 56 e. printstacktrace ( ) ; 57 } 58 _llistresultado. setadapter ( _amiembros ) ; 59 } 60 } 24