Desarrollo de Aplicaciones Para Android

48
1 Desarrollo de aplicaciones para android Curso Inicial Instructor: Sergio Ramírez Ulloa. Febrero 2012

description

Curso básico para desarrollo de aplicaciones Android en Eclipse.Autor: Sergio Ramirez Ulloa

Transcript of Desarrollo de Aplicaciones Para Android

  • 1

    Desarrollo de aplicaciones para android

    Curso Inicial

    Instructor: Sergio Ramrez Ulloa.

    Febrero 2012

  • 2

    OBJETIVO DEL CURSO:

    Iniciar al participante en la programacin con Eclipse y Java para elaborar aplicaciones para dispositivos

    mviles bajo la plataforma android.

    Duracin del curso: 20 Horas. (4 sbados).

    Deseo que el material e informacin contenida en este curso te sea de mucha utilidad.

  • 3

    CONTENIDO DEL CURSO: 1. Conceptos Tericos Preliminares y configuracin del entorno de desarrollo

    de android.

    2. Estructura bsica de una aplicacin en android.

    3. Configurando nuestros lienzos de trabajo: Layouts.

    4. Configurando nuestros objetos de trabajo bsicos:ImageView, TextView,

    EditText, Button, ToggleButton, ImageButton.

    5. Elementos bsicos android.

    6. Limpiando nuestro programa: Ubicando los errores, Vista DDMS.

    7. Seleccin de opciones: RadioButton, RadioGroup, CheckBox.

    8. Mostrar un mensajes rpidos:Toast.

    9. Mostrando advertencias: AlertDialog.

    10.Creando Mens: Principales, Secundarios y Contextuales.

    11.Pasar informacin entre actividades: Bundles, Extras.

    12.Seleccinar de una lista de elementos: Spinner, Adapters, ListView,

    GridView.

    13.Firmar e instalar mis Aplicaciones.

  • 4

    APOYOS PARA EL APRENDIZAJE:

    www.android.com

    www.wikidroid.es

    www.elandroidelibre.com

    www.android-spa.com

    www.androidcentral.com

    http://developer.android.com/guide/index.html

    http://groups.google.es/group/desarrolladores-android/web.

    www.androidinventor.es

    http://moodle.utj.edu.mx/course/

  • 5

    CONCEPTOS TERICOS PRELIMINARES

    Android: Es un sistemaoperativomvilbasado en Linux, que est enfocado para ser utilizado en dispositivos mviles como telfonos inteligentes, tablets, Google TV y otros dispositivos. Es desarrollado por la Open Handset Alliance, la cual es liderada por Googlei.

    Componente de software: Es un elemento de un sistema que ofrece un servicio predefinido, y es capaz de comunicarse con otros componentesii.

    Programa informtico: Es un conjunto de instrucciones que una vez ejecutadas realizarn una o varias tareas en una computadora. Sin programas, estas mquinas no pueden funcionar. Al conjunto general de programas, se le denomina software, que ms genricamente se refiere al equipamiento lgico o soporte lgico de una computadora digitaliii.

    Sistema Operativo: Es un programa o conjunto de programas que en un sistema informtico gestiona los recursos de hardware y provee servicios a los programas de aplicacin, y corre en modo privilegiado respecto de los restantesiv.

    Clase: Es una construccin que se utiliza como un modelo (o plantilla) para crear objetos de ese tipo. El modelo describe el estado y el comportamiento que todos los objetos de la clase compartenv.

    Objeto: La unidad que en tiempo de ejecucin realiza las tareas de un programa. Un objeto de una determinada clase se denomina una instancia de la clase. La clase que contiene (y se utiliz para crear) esa instancia se puede considerar como del tipo de ese objeto, por ejemplo, una instancia del objeto de la clase "Persona" sera del tipo "Persona"vii.

    Atributo: Es una especificacin que define una propiedad de un Objeto, elemento o archivo. Tambin puede referirse o establecer el valor especfico para una instancia determinada de los mismos.vii.

  • 6

    Mtodo: Es una subrutina asociada exclusivamente a una clase (llamados mtodos de clase o mtodos estticos) o a un objeto (llamados mtodos de instancia). Anlogamente a los procedimientos en los lenguajes imperativos, un mtodo consiste generalmente de una serie de sentencias para llevar a cabo una accin, un juego de parmetros de entrada que regularn dicha accin y o, posiblemente, un valor de salida (o valor de retorno) de algn tipo.viii.

    Tiempo de ejecucin: Intervalo de tiempo en el que un programa de computadora se ejecuta en un sistema operativo. Este tiempo se inicia con la puesta en memoria principal del programa, por lo que el sistema operativo comienza a ejecutar sus instrucciones. El intervalo finaliza en el momento en que ste enva al sistema operativo la seal de terminacin, sea sta una terminacin normal, en que el programa tuvo la posibilidad de concluir sus instrucciones satisfactoriamente, o una terminacin anormal, en el que el programa produjo algn error y el sistema debi forzar su finalizacin.ix.

  • 7

    I,1,1I,iv,v,vi,vii,viii,ixwww.wikipedia.org

    COMPARATIVA DE PLATAFORMAS MOVILES

  • 8

    VERSIONES DE ANDRIOD:

  • 9

    DESCRIPCION BREVE DE VERSIONES:

    1.5 Cupcake. Est versin Cupcake, pudimos encontrar Teclado virtual Qwerty, Capturas de video, subida de videos a Youtube, Widgets.

    1.6 Donut Est versin Donut, pudimos encontrar, navegar por googlemaps, mejoras de la interfaz de cmara, bsqueda por voz.

    2.0 Eclair Una versin que se convirti en estable, teniendo mejoras en la cmara, en googlemaps, nuevo navegador de internet, video, flash, salvapantallas animados.

    2.2 Froyo Se incluye Wifi, soporte de correo electronico, video llamada, mejoras de la memoria y una versin ms estable y veloz.

    2.3 Gingerbread Mejoras en soporte online, gestin del consumo de la batera, mejores en el teclado.

    3.0 3.4 Honeycomb Una versin optimizada para las tablets, soportando flash, divx, navegadores, personalizacin de widgets.

    4.0 Ice creamsandwich Una versin diseada tanto para Smartphone, tablets as como netbooks. Pantallas en imagen en 3D, barras de estado, reconocimiento facial, soporte USB, controles para PS3.

    5.0 JellyBean Posibilidad de integrarse junto a Chrome OS en los ordenadores de escritorio y porttiles, pudiendo decidir al inicio con que sistema de arranque queremos iniciar nuestra sesin de usuario.

  • 10

    USO DE VERSIONES:

    febrero de 2012.

  • 11

    COMO ESTA ORGANIZADA LA PLATAFORMA:

    KERNEL DE LINUX:

    Works as a HAL

    Device drivers

    Memory management

    Process management

    Networking

  • 12

    LIBRERIAS:

    C/C++ libraries

    Interface through Java

    Surface manager Handling UI Windows

    2D and 3D graphics

    Media codecs, SQLite, Browser engine

    TIEMPO DE EJECUCION:

    Dalvik VM

    Dex files

    Compact and efficient than class files

    Limited memory and battery power

    Core Libraries

    Java 5 Std edition

    Collections, I/O etc

    FRAMEWORK DE APLICACIONES:

    API interface

    Activity manager manages application life cycle.

    APLICACIONES:

    Built in and user apps, Can replace built in apps.

  • 13

    CONFIGURACIN DEL ENTORNO DE DESARROLLO DE ANDROID.

    Pasos INSTRUCCIN

    1 Checar si esta instalada la Maquina virtual de java: en cmd, teclear java -version 2 Si no est instalado BAJAR EL JRE DE JAVA: De http://www.java.com/en/download/ 3 Bajar el JDK de java : http://www.oracle.com/technetwork/java/javase/downloads/index.html 4 Bajar el IDE de Eclipse: De http://www.eclipse.org/downloads/ 5 Bajar el SDK de androide: a) ir a la pgina android.com b) ir a developers c) ir a SDK ----> http://developer.android.com/sdk/index.html d) seleccionar el SDK indicado. NOTA: se bajara un paquete instalador. 6 Instalar ADT( Herramientas de desarrollo de Android): a) Abrir eclipse. b) Ira Help--> new software. c) Dar clic al botn Add. d) Agregar: dl-ssl.google.com/android/eclipse e) Seleccionar con la palomita las actualizaciones f) Instalarlas con el botn Next. 7 Enlazar el complemento ADT de eclipse anterior al SDK de androide a) Abrir eclipse --> Window --> Preferences b) Seleccionar el elemento androide c) Buscar el SDK, esta en : C:\Archivos de programa\Android\android-sdk-windows d) Aplicar los cambios.

  • 14

    CREACION DEL EMULADOR

    I. ANTES DE CREAR EL EMULADOR ES RECOMENDABLE ACTUALIZAR A LAS ULTIMAS VERSIONES DE ANDROID.

    Para hacer esto ingresamos al SDK Manager desde eclipse.

    Seleccionamos las actualizaciones y las instalamos.

    II. CREACIN DE UN NUEVO EMULADOR

    A. ABRIMOS EL ANDRIOD VIRTUAL DEVICE

    B. PRESIONAMOS BOTN NEW,

    Name: SmartPhone2_3_3, por ejemplo. Es el nombre para el dispositivo que estamos creando. Target: 2.3 Es la versin del sistema Android que poseer. Size: 512 MiB. Es la memoria que deseamos asignar.

    Built-in: HVGA, por ejemplo. Es la resolucin de pantalla.

    Presionamos el Botn Crear AVD y listo.

  • 15

    CONFIGURACION DEL CELULAR O TABLET PARA PROBAR APLICACIONES.

    1. Configura tu celular para que admita aplicaciones que no sean del AndroidMarket: MenConfiguracinAplicaciones: Orgenes desconocidos.

    2. Configurar para que admita el Modo de depuracin al conectar el mvil con el cable USB a la computadora: MenConfiguracinAplicacionesDesarrollo: Depuracin de USB.

    3. Conecte el celular o Tablet a la computadora mientras esta ejecutndose Eclipse.

    4. Inicie su proyecto y automticamente se instalara y ejecutara la aplicacin.

  • 16

    VISION GENERAL DEL ENTORNO ANDROID Y APLICACIONES.

    En este apartado mostramos una visin general sobre manejo del sistema operativo en un dispositivo actual, en nuestro caso en el Samsug Galaxy S2 con la versin 2.3.4 de android. Asi mismo se mostraron brevemente algunas utileras, juegos y herramientas creadas por terceros.

    Para quien le interese familiarizarse con mas profundidad en las versiones de android, puede acceder a varios manuales de usuario en:

    http://static.googleusercontent.com/external_content/untrusted_dlcp/www.google.com/es//help/hc/pdfs/mobile/AndroidUsersGuide-2.3-103-es.pdf

    ESTRUCTURA BSICA DE UNA APLICACIN EN ANDROID.

    src :

    En esta carpeta se almacenara el cdigo fuente1, es decir el de Java.

    Al crear un proyecto, eclipse generara automticamente el cdigo bsico de la pantalla principal de la aplicacin. Lo har

    bajo la estructura del paquete2 definido.

  • 17

    gen: En esta carpeta se crea automticamente el archivo R. Este archivo es el interprete entre el lenguaje XML3 y el cdigo Java.

    Al agregar un nuevo elemento como un botn en la ventana, automticamente se actualiza este archivo. No es necesario modificar manualmente este archivo.

    target android:

    Es donde estan almacenadas todas las libreras necesarias para ejecutar la versin de android establecida en tu aplicacin.

    assets: Aqu se almacenan archivos de configuracin y recursos adicionales que necesita la aplicacin. No es necesario modificarla.

    bin: En esta carpeta se genera el cdigo compilado4, es decir los archivos que enlazan todo para poder ejecutar la aplicacin. No es necesario modificarla.

  • 18

    res: Contiene todos los archivos de recursos necesarios para el proyecto: Lienzos de trabajo, imgenes, vdeos, cadenas de texto, etc. Todos estos archivos se crean en cdigo XML. Generalmente estos recursos son la parte que

    CONTENIDO DE LA CARPETA RES:

  • 19

    AndroidManifest.xml: Aqu se configuran los aspectos principales de la aplicacin, como por ejemplo su identificacin (nombre, versin, icono, ), sus componentes (pantallas, mensajes, ), o los permisos necesarios para su ejecucin. Esta escrito en XML. Veremos ms adelante a profundidad este archivo.

    proguard.cfg : Archivo que elimina cdigo no utilizado y lo optimiza. No es necesario modificarlo. Project.properties: Se utiliza para comprobar la version del target y otras propiedades. No es necesario modificarlo.

  • 20

    CONCEPTOS NUEVOS: 1

    cdigo fuente. Es un conjunto de lneas de texto que son las instrucciones que debe seguir la computadora para ejecutar dicho programa. Por tanto, en el cdigo fuente de un programa est descrito por completo su funcionamiento.

    El cdigo fuente de un programa est escrito por un programador en algn lenguaje de programacin, pero en este primer estado no es directamente ejecutable por la computadora, sino que debe ser traducido a otro lenguaje (el lenguaje mquina o cdigo objeto) que s pueda ser ejecutado por el hardware de la computadora. Para esta traduccin se usan los llamados compiladores, ensambladores, intrpretes y otros sistemas de traduccin. 1 2

    Paquete. son una forma de organizar grupos de clases. 3 XML. es un metalenguaje extensible de etiquetas. 4

    cdigo compilado. es un cdigo que previamente fue un cdigo simblico interpretable por un compilador, y luego ese compilador lo convirti en un cdigo directamente interpretable por un controlador (Cdigo mquina).2

    2,2 Wikipedia.org

  • 21

    COMPILANDO Y CORRIENDO UNA APLICACION

    Creacin del archivo DEX (Dalvik Executable).

    Creacin del archivo APK(Android Package)

  • 22

    COMENZANDO CON EL DISEO DE

    NUESTRA APLICACIN

    Antes de comenzar con el diseo de nuestra aplicacin, es necesario conocer la forma en que se programa la interfaz en un proyecto Android. Asi pues para crear nuestros elementos visuales(Widgets) como botones, layout, etiquetas, etc, podemos hacerlo mediante instrucciones en codigo Java y tambien mediante el Lenguaje XML. Sin embargo es recomendable hacerlo en lenguaje XML. Debido a que de esta forma separamos todo el diseo de la parte de programacion logica: Un principio importante al disear software es separar todo lo que sea posible el diseo, los datos y la logica de programacion. (Tomas, 2011 (p.52)). Una vez que creamos nuestra interfaz en XML, podemos pasar los elementos visuales que necesitemos manipular al lenguaje java a traves del archivo R. El archivo R.java que autogenera android, permite bajar los elementos visuales creados en XML a codigo java para poder trabajar con ellos.

    NUNCA deben crearse los archivos XML con lestras en Mayscula, si se desea

    diferenciar dos palabras debemos usar el guin bajo ( _ ).

  • 23

    R

    Java

    Xml

  • 24

    CONFIGURANDO NUESTROS LIENZOS DE TRABAJO: LAYOUTS.

    LAYOUT es el elemento principal de nuestra interfaz, es nuestro lienzo sobre el cual colocaremos los dems componentes visuales ( botones, Etiquetas, Imgenes).

    TIPOS DE LAYOUT:

    Layout Lineal

    Table Layout

    List Layout

    Relative Layout

    Tab Layout

    Absolute Layout

    Frame Layout

    Grid Layout

    La siguiente pagina : http://www.droiddraw.org/ nos ser til para crear de manera sencilla y rpida la interfaz de nuestra aplicacion.

  • 25

    TIPOS DE LAYOUT

    LINEAL

    Es el layout ms simple que podemos utilizar. Como su nombre indica, los elementos se irn colocando uno detrs de otro, pero si que podemos indicar si la colocacin lineal se har de forma vertical u horizontal.

    Para ponerlo de forma vertical, en la propiedad orientation hay que indicarle el valor vertical.

    TABLE

    Es un modelo de organizacin basado en una organizacin con tablas. El diseo lo organizaremos en filas (elemento TableRow) y dentro de cada fila, pondremos los elementos.

  • 26

    RELATIVO:

    Este es el layout ms flexibles de todos.

    Los elementos se colocan relativos a otro elemento o a otro layout

    ABSOLUTO:

    Es una capa donde se utilizan coordenadas X e Y para indicarle donde colocar los elementos dentro del diseo.

    En cada elemento del cdigo se le indicar el valor de X y de Y.

    FRAME:

    Este layout consiste en un marco que ocupa toda la pantalla, y donde los controles se dispondrn a partir de la esquina superior izquierda, por lo que es probable que haya elementos que se queden ocultos detrs de otros.

  • 27

    GRID:

    Este layout consiste en un marco que ocupa toda la pantalla, y donde los controles se dispondrn a partir de la esquina superior izquierda, por lo que es probable que haya elementos que se queden ocultos detrs de otros.

    TAP:

    Este layout consiste en un marco que ocupa toda la pantalla, y donde los controles se dispondrn a partir de la esquina superior izquierda, por lo que es probable que haya elementos que se queden ocultos detrs de otros.

    TabHost: El contenedor principal de nuestro conjunto de pestaas y deber tener obligatoriamente como id el valor @android:id/tabhost.

    LinearLayout: Para distribuir verticalmente las secciones principales del layout: la seccin de pestaas en la parte superior y la seccin de contenido en la parte inferior.

    TabWidget: Representa la seccin de pestaas, deber tener como id el valor @android:id/tabs.

    FrameLayout: Como contenedor para las pestaas, con un id @android:id/tabcontent.

    LinearLayouts : Para el contenido de cada pestaa, con ids: los ids tab1, tab2

  • 28

    CONFIGURANDO NUESTROS OBJETOS DE TRABAJO BSICOS: TEXTVIEW, EDITTEXT, IMAGEVIEW , BUTTON, TOGGLEBUTTON, IMAGEBUTTON.

    Acceda a esta pagina para ver una guia visual de algunos widgets:

    http://www.droiddraw.org/widgetguide.html

    Para insertar un widget en nuestro Lienzo, simplemente seleccinelo de la paleta (Palette) y damos un clic en cualquier parte del Layout para agregarlo. Al hacer esto, eclipse automticamente agrega el cdigo XML necesario.

    TEXTVIEW

    Es la forma ms simple de mostrar un texto por pantalla, regularmente llamadas etiquetas. Solo muestran texto, no te permite escribir en el.

    Algunas propiedades configurables en XML:

    text: Texto a mostrar.

    id: Nombre del componente. El valor debe tener la siguiente estructura:

    "@+id/LblEtiqueta"

    background: Color de fondo. Este valor se asigna en forma exadecimal, p.e.: "#AA44FF"

    textColor: Color del texto. Valor en exadecimal.

    textSize: Tamao de la fuente.

    typeface: Estilo del texto: negrita, cursiva, etc. P.e.: "monospace"

  • 29

    Programacion del textview en codigo de java:

    Es necesario pasar el componente de xml al archivo java para poder trabajar con el, esta es la instruccin:

    final TextView lblEtiqueta = (TextView)findViewById(R.id.LblEtiqueta); Enseguida vamos a utilizar una variable llamada texto para guardar el valor que tiene el TextView: String texto = lblEtiqueta.getText().toString(); La siguiente instruccin agrega 123 a la variable texto: texto += "123"; Por ultimo actualizamos el valor del TextView con el valor de la variable texto:

    lblEtiqueta.setText(texto);

    Podemos cambiar el valor de otra propiedad del TextView desde Java:

    setBackgroundColor()

    EDITTEXT

    Con este widget se puede crear una caja de texto.

    Te permite escribir en el.

  • 30

    IMAGEVIEW

    permite mostrar imgenes en la aplicacin.

    Algunas propiedades configurables en XML:

    src: Permite indicar la imagen a mostrar. Nuevamente, lo normal ser indicar como origen de la imagen el identificador de un recurso de nuestra carpeta /res/drawable, p. e.: @drawable/unaimagen. maxWidth y maxHeight : Establecen el tamao mximo de la imagen.

    Programacin en cdigo de java:

    Establecer la imagen:

    ImageView img= (ImageView)findViewById(R.id.ImgFoto);

    img.setImageResource(R.drawable.icon);

    BOTONES

    BUTTON

    Es el botn ms bsico que podemos utilizar.

    Algunas propiedades configurables en XML:

    text: Texto a mostrar.

    Id: Identificador del botn, p.e.: "@+id/BtnBoton1"

  • 31

    Programacin del botn en cdigo de java:

    Eventos de un Boton: El principal es onClick. final Button btnBoton1 = (Button)findViewById(R.id.BtnBoton1); btnBoton1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { lblMensaje.setText("Botn 1 pulsado!"); } });

    ToggleButton

    Este botn lo utilizamos cuando queremos saber si el botn fue pulsado ya o no.

    Las propiedades en XML:

    state_checked=false: Definimos la imagen cuando este sin presionar

    state_checked=true: Definimos la imagen cuando este presionado.

    Programacin del ToggleButton en cdigo de java:

    final ToggleButton btnBoton2 = ToggleButton)findViewById(R.id.BtnBoton2);

    btnBoton2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { if(btnBoton2.isChecked()) lblMensaje.setText("Botn 2: ON"); else lblMensaje.setText("Botn 2: OFF"); }});

  • 32

    ImageButton En este tipo de botn podemos asignar una imagen en lugar de un texto.

    La propiedades en XML para asignar la imagen:

    Src: p.e.: @drawable/ok

  • 33

    ELEMENTOS BASICOS DE ANDROID

    Activity

    Las actividades (activities) representan el componente principal de la interfaz grfica de una aplicacin Android. Se puede pensar en una actividad como el elemento anlogo a una ventana en cualquier otro lenguaje visual.

    Cada Activity esta asociada con cuando menos un Layout, como hemos visto en los proyectos realizados en donde se hace referencia al recurso Layout main.xml desde la Actividad principal con esta lnea de cdigo java:

    setContentView(R.layout.main);

  • 34

    CICLO DE VIDA DE UN ACTIVITY

  • 35

    MOSTRANDO MAS DE UN ACTIVITY EN MI APLICACIN.

    El cdigo necesario para mostrar otro Activity es:

    Intent intent = new Intent(Principal.this, Secundaria.class); startActivity(intent); Intent

    Un intent es el elemento bsico de comunicacin. Se pueden entender como los mensajes o peticiones que son enviados entre los distintos componentes de una aplicacin o entre distintas aplicaciones. Mediante un intent se puede mostrar una actividad desde cualquier otra, iniciar un servicio, enviar un mensaje broadcast, iniciar otra aplicacin, etc.

    Posteriormente agregamos la referencia Por cada activity agregada al proyecto en el archivo AndroidManifest.xml de la siguiente forma:

  • 36

    LIMPIANDO NUESTRO PROGRAMA: UBICANDO LOS ERRORES

    En el desarrollo de una aplicacin muchas veces al escribir cdigo cometemos algunos errores frecuentes como por ejemplo intercambiar una letra, colocar cdigo en un lugar equivocado, escribir mal el nombre de algn componente o mtodo, que ocasionan que nuestro programa no pueda ejecutarse. Es aqu cuando Eclipse muestra informacin acerca del tipo de error

    cometido de distintas formas:

    La forma mas directa es inmediatamente despus de escribir un nombre mal, o no reconocido, agrega un aviso en dicha palabra:

    En la parte derecha muestra una franja roja si posicionamos el raton encima, nos muestra la descripcin del error.

    En la parte izquierda aparece una cruz, al presionar el botn izquierdo del raton encima, muestra sugerencias sobre como resolver dicho error:

  • 37

    Otra forma en que muestra errores es en la vista principal de android donde se encuentra la pestaa Problems:

    En esta pestaa se muestran errores que impiden la ejecucin de la aplicacin. Ademas se muestran Warnigs o Alertas que aun cuando permiten la ejecucin del programa, te informan de alguna situacin anormal en los archivos de tu aplicacin.

    Console:

    En la pestaa console tambin se muestran errores al intentar ejecutar la aplicacin que tiene que ver con problemas de compatibilidad de archivos, versiones, errores de arranque del emulador o dispositivo.

    Clean:

    Esta opcin permite limpiar el proyecto por cualquier error de compilacin.

  • 38

    Android Tools:

    Al presionar con el botn derecho del raton sobre la carpeta principal de tu proyecto, se muestra un men mostrando la opcin Android Tools (Herramientas de Android) que contiene a su ves:

    -Run Lint: Permite checar errores comunes.

    -Rename Application Package: Renombrar el nombre del paquete de tu aplicacin.

    -FIx Project Properties: Repara errores por incompatibilidad de versiones y falta de alguna libreras.

  • 39

    VISTA DDMS Y DEPURACIN CON LOGS DE EJECUCIN

    Por ultimo android tiene una forma de agregar un registro de informacin personalizado en cualquier parte especifica del cdigo escrito, esto lo hace a travs de logs o registros que se pueden ver en la vista DDMS de Eclipse en la pestaa LogCat:

    Para mostrar esta vista: WindowsOpen PerspectiveDDMS

    Los tipos de registros que se pueden mostrar son de acuerdo a su prioridad:

    Error Warning Info Debug Verbose

    El cdigo en Java es el siguiente:

    Log.e(LOGTAG, "Mensaje de error"); Log.w(LOGTAG, "Mensaje de warning"); Log.i(LOGTAG, "Mensaje de informacin"); Log.d(LOGTAG, "Mensaje de depuracin"); Log.v(LOGTAG, "Mensaje de verbose");

  • 40

    SELECCIN DE OPCIONES: CHECKBOX, RADIOBUTTON Y RADIOGROUP.

    CHECKBOX

    Se suele utilizar para marcar o desmarcar opciones en una aplicacin, y en Android est representado por la clase del mismo nombre, CheckBox. La forma de definirlo en nuestra interfaz y los mtodos disponibles para manipularlos desde nuestro cdigo son anlogos a los ya comentados para el control ToggleButton.

    propiedades configurables en XML:

    checked: Admite dos valores: true o false, dependiendo si queremos que aparezca en un inicio checado( con la palomita) o sin checar.

    Programacion del CheckBox en codigo de java:

    final CheckBox cb = (CheckBox)findViewById(R.id.ChkMarcame); Podremos hacer uso de los mtodos isChecked() para conocer el estado del control, y setChecked(estado) para establecer un estado concreto para el control: if (checkBox.isChecked()) { checkBox.setChecked(false);

    }

  • 41

    Evento que se activa cuando cambia su estado( marcado/desmarcado):

    cb.setOnCheckedChangeListener( new CheckBox.OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { cb.setText("Checkbox marcado!"); } else { cb.setText("Checkbox desmarcado!"); } }

    });

    RADIOBUTTON Y RADIOGROUP

    De igual forma que los controles checkbox, un radiobutton puede estar marcado o desmarcado, pero en este caso suelen utilizarse dentro de un grupo de opciones donde una, y slo una, de ellas debe estar marcada obligatoriamente, es decir, que si se marca una de ellas se

    desmarcar automticamente la que estuviera activa anteriormente. En Android, un grupo de botones radiobutton se define mediante un elemento RadioGroup, que a su vez contendr todos los elementos RadioButton necesarios.

  • 42

    Diseo en XML:

    Programacion Java:

    final RadioGroup rg = (RadioGroup)findViewById(R.id.gruporb);

    Para para marcar una opcin determinada mediante su ID:

    rg.check(R.id.radio1);

    Para desmarcar todas las opciones:

    rg.clearCheck();

    Para obtener el ID de la opcin marcada (o el valor -1 si no hay ninguna marcada):

    int idSeleccionado = rg.getCheckedRadioButtonId();

  • 43

    Evento que se activa cuando cambia su estado( marcado/desmarcado):

    rg.setOnCheckedChangeListener( new RadioGroup.OnCheckedChangeListener() { public void onCheckedChanged(RadioGroup group, int checkedId) { lblMensaje.setText("ID opcion seleccionada: " + checkedid); }

    });

    MOSTRAR UN MENSAJES RPIDOS: TOAST.

    Un toast es un mensaje que se muestra en pantalla durante unos segundos al usuario para luego volver a desaparecer automticamente sin requerir ningn tipo de actuacin por su parte, y sin recibir el foco en ningn momento (o dicho de otra forma, sin interferir en las acciones que est realizando el usuario en ese momento).

    Por sus propias caractersticas, este tipo de notificaciones son ideales para mostrar mensajes rpidos y sencillos al usuario, pero por el contrario, al no requerir confirmacin por su parte, no deberan utilizarse para hacer notificaciones demasiado importantes.

    Programacion Java:

    Esta clase dispone de un mtodo esttico makeText() al que deberemos pasar como parmetro el contexto de la actividad, el texto a mostrar, y la duracin del mensaje,

  • 44

    que puede tomar los valores LENGTH_LONG o LENGTH_SHORT, dependiendo del tiempo que queramos que la notificacin aparezca en pantalla. Tras obtener una referencia al objeto Toast a travs de este mtodo, ya slo nos quedara mostrarlo en pantalla mediante el mtodo show():

    btnDefecto.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Toast toast1 = Toast.makeText(getApplicationContext(), "Toast por defecto", Toast.LENGTH_SHORT); toast1.show(); }

    });

    Tambin podemos personalizarlo un poco cambiando su posicin en la pantalla. Para esto utilizaremos el mtodo setGravity(), al que podremos indicar en qu zona deseamos que aparezca la notificacin. La zona deberemos indicarla con alguna de las constantes definidas en la clase Gravity: CENTER, LEFT, BOTTOM, o con alguna combinacin de stas:

    btnGravity.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Toast toast2 = Toast.makeText(getApplicationContext(), "Toast con gravity", Toast.LENGTH_SHORT); toast2.setGravity(Gravity.CENTER|Gravity.LEFT,0,0); toast2.show(); }

    });

  • 45

    Diseo de un toast personalizado en XML:

    Android nos ofrece la posibilidad de definir un layout XML propio para toast, donde podremos incluir todos los elementos necesarios para adaptar la notificacin a nuestras necesidades. para nuestro ejemplo vamos a definir un layout sencillo, con una imagen y una etiqueta de texto sobre un rectngulo gris:

    Guardaremos este layout con el nombre toast_layout.xml, y como siempre lo colocaremos en la carpeta res\layout de nuestro proyecto.

  • 46

    Programacion de un toast personalizado en Java:

    Para asignar este layout a nuestro toast tendremos que actuar de una forma algo diferente a las anteriores. En primer lugar deberemos inflar el layout mediante un objeto LayoutInflater, como ya vimos en varias ocasiones al tratar los artculos de interfaz grfica. Una vez construido el layout modificaremos los valores de los distintos controles para mostrar la informacin que queramos. En nuestro caso, tan slo modificaremos el mensaje de la etiqueta de texto, ya que la imagen ya la asignamos de forma esttica en el layout XML mediante el atributo android:src. Tras esto, slo nos quedar establecer la duracin de la notificacin con setDuration() y asignar el layout personalizado al toast mediante el mtodo setView(). Veamos cmo quedara todo el cdigo incluido en un tercer botn de ejemplo:

    btnLayout.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Toast toast3 = new Toast(getApplicationContext()); LayoutInflater inflater = getLayoutInflater(); View layout = inflater.inflate(R.layout.toast_layout, (ViewGroup) findViewById(R.id.lytLayout)); TextView txtMsg = (TextView)layout.findViewById(R.id.txtMensaje); txtMsg.setText("Toast Personalizado"); toast3.setDuration(Toast.LENGTH_SHORT); toast3.setView(layout); toast3.show(); }

    });

  • 47

    MOSTRANDO ADVERTENCIAS: ALERTDIALOG.

    Existe otro mecanismo que podemos utilizar para mostrar o solicitar informacin puntual al usuario, esos son los Dialogos.

    Lo utilizaremos para solicitar al usuario que nos confirme una determinada accin, por lo que las posibles respuestas sern del tipo S/No, aunque tambin podemos agregar otra opcin para que realice otra accin.

    Programacion en Java:

    Su utilizacin es muy sencilla, bastar con crear un objeto de tipo AlertDialog.Builder y establecer las propiedades del dilogo mediante sus mtodos correspondientes: ttulo [setTitle()], mensaje [setMessage()] y y el texto y comportamiento de los botones, uno de ellos para la respuesta afirmativa (setPositiveButton()), y el segundo para la respuesta negativa (setNegativeButton()):

    AlertDialog.Builder dialogoalerta=new AlertDialog.Builder(Principal.this); dialogoalerta.setTitle("Dialogo de Alerta").setMessage ("Esto es un dialogo de alerta. Que desea hacer???"); dialogoalerta.setPositiveButton("Ok",new OnClickListener(){ public void onClick(DialogInterface arg0, int arg1) { //Programo alguna accion } }); dialogoalerta.setNegativeButton("Salir",new OnClickListener(){ public void onClick(DialogInterface arg0, int arg1) { Avisar.this.finish(); } }); dialogoalerta.show();

    Este es otro ejemplo de programar el AlertDialog en Java:

    private Dialog crearDialogoConfirmacion()

  • 48

    { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Confirmacion"); builder.setMessage("Confirma la accion seleccionada?"); builder.setPositiveButton("Aceptar", new OnClickListener() { public void onClick(DialogInterface dialog, int which) { Log.i("Dialogos", "Confirmacion Aceptada."); dialog.cancel(); } }); builder.setNegativeButton("Cancelar", new OnClickListener() { public void onClick(DialogInterface dialog, int which) { Log.i("Dialogos", "Confirmacion Cancelada."); dialog.cancel(); } }); return builder.create();

    }