Sie sind auf Seite 1von 77

PROGRAMACIN ANDROID CON ECLIPSE

DESARROLLADO POR: FREDDY BENDEZ FIGUEROA

CONTENIDO
crear un proyecto en eclipse ............................................................................................................................ 3
Estructura bsica de un proyecto Android ................................................................................................ 7
Archivo de recursos de dimensiones ............................................................................................................ 8
Uso de colores desde XML ................................................................................................................................. 9
Colores..................................................................................................................................................................... 10
Valores literales .............................................................................................................................................. 10
Archivo de recursos de colores ................................................................................................................ 10
Uso de colores desde XML .......................................................................................................................... 13
Ejemplo de uso de botones y campos de texto ....................................................................................... 15
Archivo AndroidManifest.xml........................................................................................................................ 16
Pestaa Manifest ............................................................................................................................................ 17
Pestaa Application ...................................................................................................................................... 18
Pestaa Permissions ..................................................................................................................................... 19
Pestaa Instrumentation ............................................................................................................................ 19
Pestaa AndroidManifest.xml................................................................................................................... 20
manejo de controles (Edittext, textview, button).................................................................................. 21
CDIGO PARA EL FUNCIONAMIENTO DE LA CALCULADORA ........................................................ 26
Paso de datos entre actividades ................................................................................................................... 28
USO DEL CONTROL SPINNER ........................................................................................................................ 34
CREACIN de MENS ....................................................................................................................................... 43
Manejo de Clases y uso del control RadioGroup .................................................................................... 47
Manejo del control checkbox ......................................................................................................................... 51
Listas ........................................................................................................................................................................ 53
ListView ............................................................................................................................................................. 53
Obtener la posicin seleccionada ............................................................................................................ 55
Manejo de base de datos SQLite ................................................................................................................... 56
Registrar, eliminar, modificar y consultar SQLite ................................................................................. 60
Uso de GPS ............................................................................................................................................................. 68
Obtener el IMEI del dispositivo..................................................................................................................... 72
Uso de GoogleMaps ............................................................................................................................................ 74

CURSO PROGRAMACIN ANDROID CON ECLIPSE

CREAR UN PROYECTO EN ECLIPSE


Presionar Ctrl + N Para Crear un nuevo proyecto en Eclipse, seleccionar la opcion Android
Application Project y luego clic en Next

Escribir Calculadora en el cuadro de Application Name que ser el nombre del Proyecto
y luego presionar Next.

3|P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Presionar el botn Next.

Presionar el botn Next.

4|P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Presionar el botn Next.

Seleccionar Blank Activity y presionar el botn Next.

5|P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

En el cuadro de Activity Name escribir Inicio, que ser el nombre de la primera actividad,
luego presionar el botn Finish

De esa manera acabamos de crear un proyecto en eclipse para android.

6|P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

ESTRUCTURA BSICA DE UN PROYECTO ANDROID


Lo primero que debemos tener claro para comenzar a desarrollar una aplicacin Android
es la estructura de carpetas de un proyecto estndar. Para ello, se muestra la estructura de
un proyecto.

src:
En ella se almacenan las clases java que contienen
la lgica de nuestra aplicacin.

gen:
Clases autogeneradas por el entorno de desarrollo.
Contienen referencias a los elementos que
definamos en la zona de recursos, como veremos
ms adelante.

assets:
Aqu va todo lo que no encaja en ninguna otra
carpeta. Bsicamente es una estructura de
carpetas y archivos que nuestra aplicacin puede
indexar, recorrer y utilizar sin necesidad de
acceder a ellos como recursos.

bin:
Aplicacin compilada.

res:
En ella se almacenan todos los recursos de nuestra
aplicacin, ya sean imgenes, estructura de
pantallas, estilos de la aplicacin, vdeos, etc.
En las carpetas drawable se guardarn las
imgenes que utiliza la aplicacin. Cada
dispositivo android tiene una resolucin de
pantalla y una densidad en pxeles por pulgada.
Por ello es necesario crear imgenes con
resolucin distinta para pantallas distintas. Estas
tres carpetas distinguen qu imgenes se
utilizarn para pantallas de alta densidad (hdpi),
media (mdpi) y baja (ldpi).

Layout:
Guarda ficheros XML que contienen la estructura de los componentes que vamos a
mostrar en nuestra aplicacin, ya sean pantallas completas o controles personalizados.
7|P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Values
Consiste en un conjunto de recursos definidos en XML, como son la declaracin de las
pantallas de nuestra aplicacin, o las cadenas de textos que se mostrarn en la misma.
Estas ltimas tambin tienen un archivo generado desde el principio: strings.xml. Es muy
recomendable que desde el principio todas las cadenas de texto se almacenen en l,
porque facilitarn en gran medida la traduccin a otros idiomas.

AndroidManifest.xml:
Almacena la informacin general de la aplicacin, como el nombre, la versin de Android,
las pantallas que tiene, el tema, etc.

ARCHIVO DE RECURSOS DE DIMENSIONES


Las dimensiones pueden almacenarse en un archivo de recursos XML como cualquier otro
recurso en las aplicaciones Android. Tambin en este caso, el archivo debe almacenarse en
la carpeta res/values. El archivo puede tener cualquier nombre aunque es habitual
nombrarlo como dimens.xml.
Si no existe ese archivo en tu proyecto, puedes crearlo desde Eclipse usando el men File o
el men contextual del proyecto, seleccionando la opcin New > Android XML File. En la
primera ventana del asistente para la creacin del archivo XML selecciona o comprueba
que est seleccionado el tipo de recurso Values, y en el nombre del archivo indica, como se
recomienda, dimens.xml.
A continuacin puedes ver un ejemplo de dicho archivo con dos dimensiones declaradas:

Desde el editor visual puedes gestionar tambin las dimensiones declaradas. Desde ah
puedes aadir nuevas dimensiones, editar, eliminar y ordenarlas. Para aadir nuevas
dimensiones, tan slo debes usar el botn Add y elegir en la lista la opcin Dimension.

8|P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

En la parte derecha aparece el detalle de la dimensin que se est aadiendo o editando,


donde se debe indica un nombre para la dimensin, y su valor asociado siguiendo uno de
los formatos comentados anteriormente.

Recuerda guardar los cambios usando la combinacin de teclas Ctrl+S o el men File >
Save.

USO DE COLORES DESDE XML


Puedes asignar un valor literal a cualquier propiedad de un objeto View que admita una
dimensin. Por ejemplo, el tamao de texto o el tamao de los mrgenes. Si quieres
establecer una dimensin usando su valor literal, tan slo debes indicar dicho valor en la
propiedad adecuada. Por ejemplo, en la siguiente imagen se ha establecido la dimensin
10dp a la propiedad TextSize

Para hacer referencia a una dimensin declarada en el archivo de recursos dimens.xml


desde otro fichero XML (por ejemplo, desde un layout), debes usar el formato habitual
para hacer referencia a un recurso desde XML, indicando en este caso que es un recurso de
tipo dimen:
9|P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

@dimen/nombre_dimensin
Por ejemplo, si se quiere cambiar el tamao del texto de un TextView debes indicar la
referencia a la dimensin en la propiedad Text Size.

COLORES
A diferentes objetos View de los layouts se les puede asignar colores. Por ejemplo, a un
TextView se le puede asignar un color para el texto o un color para el fondo.
Al igual que ocurre con muchos otros elementos utilizados en el desarrollo de aplicaciones
para Android, los valores se pueden asignar literalmente (indicando directamente el valor
numrico correspondiente al color), o hacer referencia a un recurso declarado
previamente.

VALORES LITERALES
Para indicar un valor de manera literal, se puede usar uno de los siguientes formatos:
#RGB
#ARGB
#RRGGBB
#AARRGGBB
Donde R hace referencia al valor para el color rojo, G para el color verde, B para el color
azul y A para el canal alfa (opacidad). Cada valor se indica con un dgito hexadecimal (0 a
F). Por ejemplo, el color rojo puro se puede indicar como #F00, o el color rosa intenso
como #FF1493. En la pgina de Wikipedia Colores HTML puedes ver los cdigos
correspondientes a multitud de colores.

ARCHIVO DE RECURSOS DE COLORES


En el archivo res/values/colors.xml (el nombre del archivo puede ser otro, pero se
recomienda colors.xml) del proyecto puedes almacenar colores a los que les asignas un
nombre que utilizars desde el cdigo Java o desde otros archivos XML.

10 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Si no existe ese archivo en tu proyecto, puedes crearlo desde Eclipse usando el men File o
el men contextual del proyecto, seleccionando la opcin New > Android XML File. En la
primera ventana del asistente para la creacin del archivo XML selecciona o comprueba
que est seleccionado el tipo de recurso Values, y en el nombre del archivo indica
colors.xml.

La siguiente pantalla te permite elegir los cualificadores que marcarn la configuracin


sobre la que quieres aplicar los colores que vas a declarar en este archivo XML. Como en
otros casos, si no indicas ningn cualificador, crears definiciones de colores para la
configuracin por defecto.

11 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Una vez creado podrs acceder a l desde la carpeta res/values.

El formato del archivo XML es el habitual del utilizado en los dems recursos. Por ejemplo:

Desde el editor visual puedes gestionar tambin los colores declarados. Desde ah puedes
aadir nuevos colores, editar, eliminar y ordenarlos. Para aadir nuevos colores, tan slo
debes usar el botn Add y elegir en la lista la opcin Color.

12 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

En la parte derecha aparece el detalle del color que se est aadiendo o editando, donde se
debe indica un nombre para el color, y su valor asociado siguiendo uno de los formatos
comentados anteriormente.

Guardar los cambios usando la combinacin de teclas Ctrl+S o el men File > Save.

USO DE COLORES DESDE XML


Puedes asignar un valor literal a cualquier propiedad de un objeto View que admita un
color. Por ejemplo, el color de texto o el color de fondo. Si quieres establecer un color
usando su valor literal, tan slo debes indicar dicho valor en la propiedad adecuada. Por

13 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

ejemplo, en la siguiente imagen se ha establecido el color #00FF00 a la propiedad


TextColor.

Para hacer referencia a un color declarado en el archivo de recursos colors.xml desde otro
fichero XML (por ejemplo, desde un layout), debes usar el formato habitual para hacer
referencia a un recurso desde XML, indicando en este caso que es un recurso de tipo color:
@color/nombre_color
Por ejemplo, si se quiere cambiar el color del texto de un TextView debes indicar la
referencia al color en la propiedad Text Color.

14 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

EJEMPLO DE USO DE BOTONES Y CAMPOS DE TEXTO


El siguiente ejemplo es una sencilla aplicacin que permite al usuario copiar el texto que
introduce en el primer campo de texto en otro campo de texto usando un botn.
La estructura visual de la pantalla es la siguiente:

Que corresponde al siguiente layout en XML:

15 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Para que el botn realice la copia del texto que se encuentre en el primer campo de texto al
segundo campo de texto, puedes usar un cdigo similar al siguiente en la Activity:

ARCHIVO ANDROIDMANIFEST.XML
El fichero AndroidManifest.xml que debe tener cualquier aplicacin Android en su carpeta
principal, contiene informacin que debe conocer el sistema sobre la aplicacin. Entre
otras cosas contiene lo siguiente:

Nombre del paquete Java para la aplicacin. Este nombre sirve como un
identificador nico de la aplicacin.
Describe los componentes de la aplicacin (activities, services, broadcast receivers
y content providers). Se nombran las clases que los implementan y se publican sus
capacidades. As el sistema puede conocer los componentes que hay y bajo qu
condiciones se iniciarn.
Declara los permisos que la aplicacin debe tener para poder acceder a
determinadas parter protegidas de la API o para interactuar con otras aplicaciones.
Lista las clases Instrumentation que permiten monitorizar la interaccin de la
aplicacin con el sistema. Estas declaraciones slo se usarn mientras la aplicacin
est en la fase de desarrollo, y se eliminarn antes de publicarla.
Declara el nivel mnimo de la API Android que requiere la aplicacin.
Lista las bibliotecas con las que la aplicacin debe estar enlazada.

Eclipse permite modificar los valores de este fichero de una forma grfica, separando la
informacin en varias pestaas que puedes ver en la parte inferior de la ventana que
aparece al abrir este fichero.
16 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

PESTAA MANIFEST
En una aplicacin bsica contiene informacin sobre la versin de la misma y algunos
extras como la versin mnima de SDK requerida y hacia la que va dirigida la aplicacin.

17 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

PESTAA APPLICATION
Inicialmente contiene el tema o plantilla que va a utilizar la aplicacin en sus pantallas, el
nombre de la aplicacin y su icono. Adems refleja que contiene la activity llamada
MainActivity a la que se le aplica el filtro de activity principal (main) y el filtro de launcher
que informa al sistema que dicha activity debe ser incluida en la lista de lanzadores de
aplicaciones.

18 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

PESTAA PERMISSIONS
Inicialmente se muestra vaca y puede contener los permisos que debe aceptar el usuario
para que la aplicacin pueda ejecutarse.

PESTAA INSTRUMENTATION
Inicialmente vaca y en la que se pueden indicar una serie de clases que permiten
monitorizar la interaccin de la aplicacin con el sistema.

19 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

PESTAA ANDROIDMANIFEST.XML
Muestra y permite editar el contenido del fichero. Slo contiene las etiquetas que han sido
configuradas, lo que en ocasiones permite una visin ms sencilla que usando las ventanas
anteriores.

20 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

MANEJO DE CONTROLES (EDITTEXT, TEXTVIEW, BUTTON)


Arrastrar el control TextView hacia el Layout

Arrastrar el control EditText (Number Decimal) hacia el Layout

21 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Repetir los pasos hasta logar el siguiente diseo:

Seleccionar el primer TextView y buscar la propiedad Text, luego hacer clic en los puntos
suspensivos.

Hacer clic en el botn New String

22 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

En el cuadro New R.string escribir titulo1 y en el cuadro String escribir Ingresar un


Nmero.

Nota: La propiedad Text se maneja igual Para todo los controles.


Seleccionar el primer EditText y buscar la propiedad ID, luego hacer clic en los puntos
suspensivos.

23 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

En el cuadro de New Name, escribir el nombre de identificador txtNumero1 y clic en Ok.

El nombre de todos los EditText debe quedar de la siguiente manera.

Seleccionar el primer botn y en la propiedad On Click Digitar cSumar, el segundo botn


cMultiplicar y el tercero cDividir

24 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

El diseo debe quedar de la siguiente manera.

25 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

CDIGO PARA EL FUNCIONAMIENTO DE LA CALCULADORA


Doble clic en el archivo Inicio.java

Se muestra la siguiente codificacin:

26 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Para el funcionamiento de nuestra aplicacin debemos escribir la siguiente codificacin.

27 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

PASO DE DATOS ENTRE ACTIVIDADES


Una de las cosas ms habituales cuando desarrollamos una aplicacin para Android, es
poder enviar datos (variables, objetos, etc.) desde una Activity a otra. En trminos
generales, una Activity es una pantalla de nuestra aplicacin.
Para realizar esta tarea, Android pone a nuestra disposicin los llamados Intent. En
general, utilizaremos un Intent cuando queramos movernos de una actividad a otra,
permitindonos a su vez pasar datos desde la Activity en la que estamos hacia la nueva.
Esta vez crearemos una aplicacin escribiendo todo el cdigo e incluso la interfaz lo
crearemos mediante cdigo. Tenemos una aplicacin donde el usuario tiene que introducir
su nombre y contrasea y cuando le da a Acceder, el sistema comprueba si ese usuario
est registrado o no.

En la primera actividad, definimos la interfaz y donde el usuario introduce los


datos de registro (activity_main.xml)
En la segunda actividad, el sistema comprueba si el usuario est registrado, y
muestra un mensaje.
Para enviar y recibir datos entre la 1actividad y la 2 actividad utilizamos los
objetos Bundle e Intent.

La interfaz sera de la siguiente manera:

28 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Esta sera la primera actividad cuyo nombre es activity_main.xml, y el cdigo es el


siguiente:

29 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

La segunda actividad (actividad_validar.xml) (donde se muestra si el usuario est


registrado o no) slo tendr un textview donde se mostrar un mensaje:

Por otro lado, estn los recursos que se definen en strings.xml, donde se declaran los
ttulos de los textview, button, etc. Adems los usuarios registrados en el sistema, y que
despus recogerermos en un array de strings:

Ya estn todos los recursos y controles definidos (lo que sera la interfaz), ahora vamos a
la programacin en Java, en el MainActivity.java recogeremos los datos introducidos por el
usuario y usaremos Bundle para enviarlos a la otra actividad.

30 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Estos datos sern enviados a la actividad, actividad_validar, que ser gestionada por
Validar.java, que comprobar si el usuario est registrado en la aplicacin, y mostrar un
mensaje. Para obtener los datos tambin se usar el objeto Bundle, como se ve en el
cdigo.

31 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

32 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Comprobamos nuestra aplicacin.

33 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

USO DEL CONTROL SPINNER


Veremos cmo navegar por medio de diferentes pantallas al hacer clic sobre un botn y a
la vez pasar datos de una actividad a otra.
La aplicacin consiste en registrar los datos de tareas asignadas a un determinado
profesional informticos las cuales pueden ser tareas de Soporte, Desarrollo y Diseo,
aparte de eso se debe de registrar el nombre de la persona asignada para dicha tarea y
finalmente se debe registrar la descripcin de la tarea asignada.
Creamos un nuevo proyecto de Android (Ctrl + N) con el nombre PasarDatos

Presionar Next hasta finalizar


Creamos una actividad (Ctrl + N) llamada DatosEenviados

Presionar Siguiente hasta finalizar

34 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Disear la interfaz de la primera actividad.

Para que podamos tener la posibilidad de elegir un tipo de tarea asignada a registrar
necesitamos insertar en este layout un control Spinner (combobox o dropdownlistbox) en
otros lenguajes de programacin, pero para que este control tenga la lista de tipos de tarea
a asignar debemos de llenar de alguna manera esos valores haca el control Spinner.
Presionar (Ctrl +N) / Entrar a la Carpeta Android /Seleccionar Android XML Values File y
Presionar Next

35 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Digitar el nombre del archivo tareas y presionar Finish

Presionar el botn Add

Seleccionar String Aray y Presionar Ok

36 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Presionar el botn Add para agregar elementos al String Array

Presionar el Boton Ok para crear un Item

Ingresar el primer dato del Array en el cuadro de Value Soporte

Repetir los pasos para agregar Desarrollo y Diseo

37 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Relacionamos el Spinner con el recurso creado tareas.xml, hacemos clic derecho sobre el
Spinner / Edit Entiries.

Seleccionar Array / Tareas.

Disear la interfaz de la segunda actividad

38 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Ahora programaremos la primera actividad doble clic en el MainActivity.java

Escribimos el siguiente Cdigo:

39 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Explicando el cdigo:
En primer lugar necesitamos definir las variables que se utilizarn para pasar los
respectivos valores a la ventana de confirmacin de tarea registrada.

En el mtodo onCreate de la actividad seteamos las variables descritas en el cdigo


anterior a los controles de la actividad principal:

Creamos el mtodo que nos permitir enviar los datos de la primera actividad (registro de
tarea asignada) a la actividad de confirmacin de registro de tarea asignada:
40 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Las variables valor1, valor2 y valor3 son las que van a permitir enviar sus
correspondientes valores a la otra ventana.
Ahora programamos la funcionalidad de la ventana DatosEnviados (ventana de
confirmacin de registro de tarea asignada), para acceder al cdigo hacemos doble clic en
DatosEnviados.java

Escribimos el siguiente Cdigo:

41 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Probamos la aplicacin:

42 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

CREACIN DE MENS
Un docente de una determinada Universidad Desea tener un registro completo de todas
las diferentes calificaciones que un alumno a obtenido en la asignatura que el ensea, en
este caso tomaremos el caso de que la Asignatura es el Curso de Matemticas I.
Las opciones que debe de contemplar el Sistema de Notas son:

Registro de Calificaciones.
Bsqueda de Calificaciones.
Edicin de Calificaciones.

Creamos un nuevo proyecto Android con el nombre UsoMenu

Agregamos un nuevo archivo (Ctrl + N) de tipo Android XML File

43 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Seleccionar Menu en Resource Type, digitar el nombre del archivo menuprincipal y


luego clic en Finish.

Presionar el botn Add para agregar un elemento al men.

Seleccionar Item y presionar Ok.

44 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Digitar en Identificador y el ttulo del men tal como se muestra en la imagen

Nuevamente presionar el botn Add para agregar otro elemento al men

Digitar en Identificador y el ttulo del men tal como se muestra en la imagen, repetir el
proceso para agregar un tercer elemento

45 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Revisar el cdigo de la actividad principal y corregir el nombre del men menuprincipal.

Comprobamos nuestra aplicacin. Presionar el botn men del dispositivo Android

46 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

MANEJO DE CLASES Y USO DEL CONTROL RADIOGROUP


El concepto clave de la POO es la clase. Una clase no es ms que un concepto (como mesa o
perro), que a la hora de implementarlo se compone de conjunto de variables (que
conforman su estado) junto con un conjunto de funciones que se aplican sobre ellas (que
conforman su comportamiento). Un ejemplo de clase puede ser la clase Persona cuyos
datos internos son por ejemplo: nombre, peso, altura, sexo, edad, y cuyos mtodos son:
anda(); come(); habla(); crece();
La clase es el concepto. Para utilizarla tenemos que instanciarla (crear un objeto). Una
clase es el correspondiente a un tipo de dato (como un entero) y un objeto el
correspondiente a una variable (int a;). Por ejemplo una clase puede ser Persona y los
objetos de la clase seran Pepe, Manolo, Margarita y Alejandro, que son todos Personas.
Ejemplo:
Crearemos una aplicacin que simule el proceso de transacciones bancarias, nuestra
aplicacin permitir realizar un depsito o un retiro de una cuenta bancaria.
Creamos un nuevo proyecto Android con el nombre Banco y el nombre de la actividad
Principal

Crear el siguiente diseo utilizando TextView, EditText, GroupBox y Button


47 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Agregar una nueva clase con el nombre Acciones

48 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Escribir el siguiente Cdigo que vendran a ser 2 mtodos que permiten obtener un valor
como resultado.

Doble en la actividad de nombre Principal para escribir el cdigo necesario.

49 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

50 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

MANEJO DEL CONTROL CHECKBOX


Para probar este control, crearemos una aplicacin que cambia el color de fondo y el color
de texto.
Crear un nuevo proyecto y agregar 2 controles Checkbox.

Aqu se muestra el cdigo del diseo que se acaba de crear.

Escribimos el siguiente cdigo para el funcionamiento de nuestra aplicacin.

51 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Evento que captura cuando se modifica el control Checkbox sera:


checkbox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked){
});

Mtodo que comprueba si un ckeckbox est seleccionado.


.isChecked();

52 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

LISTAS
Es muy frecuente en las aplicaciones para dispositivos mviles, el uso de listas para
mostrar una serie de elementos. El usuario puede ver la lista completa de los elementos
que forman la lista, pudiendo desplazarse a travs de ellos. Si el usuario selecciona
alguno de los elementos de la lista, la aplicacin podr realizar alguna accin relacionado
con el elemento indicado

LISTVIEW
Puedes crear una lista en una Activity de la aplicacin insertando un elemento ListView
que encontrars en la seccin Composite de la palete.

El mtodo setAdapter de la clase ListView permite indicar el formato que va a tener la


lista, as como el contenido de la misma, todo ello utilizando un objeto ListAdapter o de sus
subclases como ArrayAdapter (para asignarle un array de objetos) o CursorAdapter (para
utilizar objetos obtenidos desde una base de datos).
void setAdapter (ListAdapter adapter)
La clase ArrayAdapter dispone de varios mtodos constructores. Quiz el constructor ms
sencillo sea el que recibe como parmetro el contexto actual, el identificador de un recurso
de tipo Layout que contenga un TextView donde se mostrar cada elemento, y un array
con el contenido.
53 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

ArrayAdapter (Context context, int textViewResourceId, T[] objects)


Si slo deseas mostrar un String en cada elemento de la lista, puedes usar en el parmetro
textViewResourceId, alguno de los layouts predefinidos en Android. Puedes ver las
diferencias entre los distintos estilos en el artculo Different styles to show data in listview.
El ms sencillo es android.R.layout.simple_list_item_1 que nicamente muestra la cadena
de texto.
Por ejemplo, puedes crear una lista de nombres ficticios con el siguiente cdigo:

El resultado debe ser similar al siguiente:

54 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

OBTENER LA POSICIN SELECCIONADA


Habitualmente es necesario conocer qu elemento ha seleccionado el usuario al pulsar
sobre l, para hacer alguna operacin con los datos relacionados con dicho elemento.
Para ello, debes utilizar el mtodo setOnItemClickListener con el objeto ListView creado
anteriormente, al que se le debe pasar como parmetro un objeto OnItemClickListener que
puedes crear directamente dentro de los parntesis. Ah debes sobreescribir el mtodo
onItemClick, y en su contenido indicars las operaciones a realizar cuando el usuario haga
clic en un elemento de la lista.
void onItemClick (AdapterView<?> parent, View view, int position, long id)
Para conocer cul ha sido el elemento que se ha seleccionado, el parmetro position te
ofrece el nmero de la posicin de dicho elemento, iniciando la cuenta desde el valor 0.
Podemos probar con este ejemplo, donde se muestra en pantalla un mensaje Toast con el
nmero de la posicin seleccionada. Debers copiar todo el cdigo dentro del mtodo
onCreate que se ha mostrado anteriormente.

Al ejecutarlo puedes obtener un resultado como el siguiente:

55 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

MANEJO DE BASE DE DATOS SQLITE

SQLite, Base de Datos relacional para sistemas embebidos.


Ocupa nicamente unos 225KB.
Implementa la mayor parte del estndar SQL-92, pero con restricciones.
Soporte para ALTER_TABLE limitado.
Existen diferentes herramientas, como sqlite3, disponible desde sqlite.org
Lo utilizan la mayora de las plataformas mviles (iOS, Symbian, Android,
BlackBerry OS, webOS).
No existen las claves ajenas o forneas, y en el caso de necesitarlas, debemos
forzarlas a mano.
Es relativamente fcil conectar una base de datos a una lista.
La base de datos est protegida dentro de la memoria interna del dispositivo.
Mientras trabajamos con el emulador, podemos extraer (con DDMS) el archivo de
la base de datos y visualizarlo.
SQLiteOpenHelper
o
o
o

Referencia a la Base de Datos


o
o
o

Objeto de tipo SQLiteDatabase.


Actualizar, modificar, eliminar datos.
Mtodos:
getReadableDatabase()
getWritableDatabase()

Insertar, actualizar y eliminar registros


o

Nos permite crear, actualizar, y conectar con una base de datos SQLite
Es solo un constructor.
Mtodos:
onCreate()
onUpgrade()

Mtodo execSQL()
Permite ejecutar cualquier sentencia SQL sobre la base de datos.
No devuelve resultados.
Mtodos insert(), update() y delete()
Uso de parmetros.
Separa tablas, valores y condiciones en parmetros independientes.

Seleccin y recuperacin de datos


o

Mtodo rawQuery().
nico parmetro, comando SQL.
Resultado de la consulta en forma de Cursor.

Mtodo query().

56 | P g i n a

Varios parmetros:
Nombre de la tabla.
Array campos, clusula WHERE.
FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Array con argumentos variables incluidos en el WHERE (si


los hay, null caso contrario).
Clusula GROUP BY si existe.
Clusula HAVING si existe.
Clusula ORDER BY si existe.
Parmetro opcional con el nmero de registros a obtener.

Resultado de la consulta en forma de Cursor.

Recorrer y manipular un cursor


o

Mtodos:
moveToFirst(): mueve el puntero del cursor al primer registro
devuelto.
moveToNext(): mueve el puntero del cursor al siguiente registro
devuelto.

Creamos un nuevo proyecto Android con el nombre Ejemsqlite, agregamos una clase con
el nombre Datos y escribimos el siguiente cdigo.

Agregar los controles necesarios para tener el siguiente diseo:

57 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Escribimos el siguiente cdigo en el archivo Inicio.java

58 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Agregar el siguiente cdigo en la clase Datos.java, que es un mtodo que permite agregar
informacin a la tabla Usuarios.

59 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

REGISTRAR, ELIMINAR, MODIFICAR Y CONSULTAR SQLITE


Desarrollar un programa que permita almacenar los datos de votantes de una eleccin.
Crear la tabla votantes y definir los campos DNI (documento de identidad), nombre del
votante, colegio donde vota y nmero de mesa donde vota.
El programa debe permitir:

Registrar de personas.
Consultar por el DNI (para saber dnde vota).
Eliminar registros.
Modificacin de datos.

Se debe implementar la siguiente interfaz

Lo primero que haremos es crear una clase que herede de SQLiteOpenHelper. Esta clase
nos permite crear la base de datos y actualizar la estructura de tablas y datos iniciales.
Debemos implementar el constructor y sobreescribir los mtodos onCreate y onUpgrade.
El mtodo onCreate, se le llama cuando la base de datos se crea por primera vez. Aqu es
donde se define la estructura de las tablas y se cargan eventualmente los datos iniciales
En el mtodo onUpgrade se llama cuando la base de datos debe ser actualizada. Tiene por
objetivo eliminar tablas, aadir tablas, o hacer cualquier otra cosa que necesita para
actualizarse.
60 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

En nuestro problema implementaremos una nueva clase llamada AdminSQLiteOpenHelper


que herede de la clase SQLiteOpenHelper, Escribir el siguiente cdigo en la actividad
principal.

En el constructor solo llamamos al constructor de la clase padre pasando los datos que
llegan en los parmetros:
public AdminSQLiteOpenHelper(Context context, String nombre, CursorFactory factory, int version) {
super(context, nombre, factory, version);
}

En el mtodo onCreate procedemos a crear la tabla votantes con los cuatro campos
respectivos y definiendo el campo dni como primary key:
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table votantes(dni integer primary key, nombre text, colegio text, nromesa integer)");
}

En el mtodo onUpgrade procedemos a borrar la tabla votantes y crear nuevamente la


tabla (en este caso con la misma estructura pero podra ser otra en un caso ms real:
public void onUpgrade(SQLiteDatabase db, int versionAnte, int versionNue) {
db.execSQL("drop table if exists votantes");
db.execSQL("create table votantes(dni integer primary key, nombre text, colegio text, nromesa integer)");
}

Escribimos el siguiente cdigo en la actividad principal.

61 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

62 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

63 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Registrar datos.
Cuando se presiona el botn registrar se ejecuta el mtodo "alta" recordemos inicializar la
propiedad "OnClick" del botn desde la ventana de visualizacin del archivo XML.
Lo primero que hacemos en este mtodo es crear un objeto de la clase que planteamos
anteriormente y le pasamos al constructor this (referencia del Activity actual),
"administracion" (es el nombre de la base de datos que crearemos en el caso que no
exista) luego pasamos null y un uno indicando que es la primer versin de la base de datos
(en caso que cambiemos la estructura o agreguemos tablas por ejemplo podemos pasar un
dos en lugar de un uno para que se ejecute el mtodo onUpgrade donde indicamos la
nuestra estructura de la base de datos)

64 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Luego de crear un objeto de la clase AdminSqLiteOpenHelper procedemos a crear un


objeto de la clase SQLiteDataBase llamando al mtodo getWritableDatabase (la base de
datos se abre en modo lectura y escritura).
Creamos un objeto de la clase ContentValues y mediante el mtodo put inicializamos todos
los campos a cargar.
Seguidamente llamamos al mtodo insert de la clase SQLiteDatabase pasando en el primer
parmetro el nombre de la tabla, como segundo parmetro un null y por ltimo el objeto
de la clase ContentValues ya inicializado (este mtodo es el que provoca que se inserte una
nueva fila en la tabla votantes en la base de datos llamada administracion)
Borramos seguidamente los EditText y mostramos un mensaje para que conozca el
operador que el alta de datos se efectu en forma correcta:
public void alta(View v) {
AdminSQLiteOpenHelper admin=new AdminSQLiteOpenHelper(this, "administracion", null, 1);
SQLiteDatabase bd=admin.getWritableDatabase();
String dni=et1.getText().toString();
String nombre=et2.getText().toString();
String colegio=et3.getText().toString();
String nromesa=et4.getText().toString();
ContentValues registro=new ContentValues();
registro.put("dni",dni );
registro.put("nombre",nombre );
registro.put("colegio",colegio );
registro.put("nromesa",nromesa );
bd.insert("votantes", null, registro);
bd.close();
et1.setText("");
et2.setText("");
et3.setText("");
et4.setText("");
Toast.makeText(this, "Se cargaron los datos de la persona", Toast.LENGTH_SHORT).show();
}

65 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Consulta de datos.
Cuando se presiona el botn "Consulta por DNI" se ejecuta el mtodo consulta:
public void consulta(View v) {
AdminSQLiteOpenHelper admin=new AdminSQLiteOpenHelper(this, "administracion", null, 1);
SQLiteDatabase bd=admin.getWritableDatabase();
String dni=et1.getText().toString();
Cursor fila=bd.rawQuery("select nombre,colegio,nromesa from votantes where dni="+dni+"",null);
if (fila.moveToFirst())
{
et2.setText(fila.getString(0));
et3.setText(fila.getString(1));
et4.setText(fila.getString(2));
}
else
Toast.makeText(this, "No existe una persona con dicho dni", Toast.LENGTH_SHORT).show();
bd.close();

En el mtodo consulta lo primero que hacemos es crear un objeto de la clase


AdminSQLiteOpenHelper y obtener una referencia de la base de datos llamando al mtodo
getWritableDatabase.
Seguidamente definimos una variable de la clase Cursor y la inicializamos con el valor
devuelto por el mtodo llamado rawQuery.
La clase Cursos almacena en este caso una fila o cero filas (una en caso que hayamos
ingresado un dni existente en la tabla votantes), llamamos al mtodo moveToFirst() de la
clase Cursos y retorna true en caso de existir una persona con el dni ingresado, en caso
contrario retorna cero.
Para recuperar los datos propiamente dichos que queremos consultar llamamos al mtodo
getString y le pasamos la posicin del campo a recuperar (comienza a numerarse en cero,
en este ejemplo la columna cero representa el campo nombre, la columna 1 representa el
campo colegio y la columna 2 representa el campo nromesa)
Eliminar Datos.
Para borrar uno o ms registros la clase SQLiteDatabase tiene un mtodo que le pasamos
en el primer parmetro el nombre de la tabla y en el segundo la condicin que debe
cumplirse para que se borre la fila de la tabla. El mtodo delete retorna un entero que
indica la cantidad de registros borrados:
66 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

public void baja(View v) {


AdminSQLiteOpenHelper admin=new AdminSQLiteOpenHelper(this, "administracion", null, 1);
SQLiteDatabase bd=admin.getWritableDatabase();
String dni=et1.getText().toString();
int cant=bd.delete("votantes", "dni="+dni+"",null);
bd.close();
et1.setText("");
et2.setText("");
et3.setText("");
et4.setText("");
if (cant==1)
Toast.makeText(this, "Se borr la persona con dicho documento", Toast.LENGTH_SHORT).show();
else
Toast.makeText(this, "No existe una persona con dicho documento", Toast.LENGTH_SHORT).show();
}

Modificacin de datos.
En la modificacin de datos debemos crear un objeto de la clase ContentValues y mediante
el mtodo put almacenar los valores para cada campo que ser modificado. Luego se llama
al mtodo update de la clase SQLiteDatabase pasando el nombre de la tabla, el objeto de la
clase ContentValues y la condicin del where (el cuanto parmetro en este ejemplo no se
lo emplea)
public void modificacion(View v) {
AdminSQLiteOpenHelper admin=new AdminSQLiteOpenHelper(this, "administracion", null, 1);
SQLiteDatabase bd=admin.getWritableDatabase();
String dni=et1.getText().toString();
String nombre=et2.getText().toString();
String colegio=et3.getText().toString();
String nromesa=et4.getText().toString();
ContentValues registro=new ContentValues();
registro.put("nombre",nombre);
registro.put("colegio",colegio);
registro.put("nromesa",nromesa);

67 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

int cant = bd.update("votantes", registro, "dni="+dni, null);


bd.close();
if (cant==1)
Toast.makeText(this, "se modificaron los datos", Toast.LENGTH_SHORT).show();
else
Toast.makeText(this, "no existe una persona con dicho documento", Toast.LENGTH_SHORT).show();
}

USO DE GPS
Disear la siguiente aplicacin con la interfaz que se muestra.

68 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

69 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Cdigo principal de la aplicacin.

70 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Modificamos el AndroidManifest.xml

71 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

OBTENER EL IMEI DEL DISPOSITIVO.


Disear la siguiente interfaz.

Cdigo principal del Imei.java

72 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Agregamos los permisos en el archivo AndroidManifest.xml

73 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

USO DE GOOGLEMAPS
Codigo del Layout principal mimapa.xml

Codigo del activity Mimapa.java

74 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

75 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

76 | P g i n a

FREDDY BENDEZU FIGUEROA

CURSO PROGRAMACIN ANDROID CON ECLIPSE

Agregamos los permisos en el archivo AndroidManifest.xml

77 | P g i n a

FREDDY BENDEZU FIGUEROA

Das könnte Ihnen auch gefallen