Programación Android, Ejemplo de Bases de datos & ListView I

Android SQLite

Después de explicar cómo gestionar bases de datos en las entradas Bases de Datos I (Modelo-Vista-Controlador), Base de datos II y Bases de Datos III, vamos a mostrar un ejemplo práctico en el que utilizaremos también un ListView para mostrar los datos que recojamos de la Base de Datos, y además incorporaremos la orientación a objetos en nuestro código, para que quede más ordenado el código de nuestra aplicación y posteriormente sea más fácil de mantener.

En primer lugar vamos a explicar un poco en qué consistirá el proyecto: Vamos a crear dos tablas distintas. En la primera, en caso de que no contenga datos, insertaremos una colección de datos al ejecutar la aplicación. Una vez que tengamos datos en la primera de las tablas, pulsando un botón en la interfaz gráfica copiaremos el contenido de la primera tabla a una segunda tabla. También habilitaremos un botón que borrará todo el contenido de la segunda tabla. Por último, pulsando uno de los registros del ListView en que se muestran los datos de la segunda tabla se abrirá una nueva Activity en la que mostraremos en detalle los datos que corresponden a ese registro, y además podremos modificarlos.

Creando el interfaz principal

Para la interfaz hemos optado por un LinearLayout que contiene 2 botones y 2 ListViews, además de 2 TextViews para ayudar a diferenciar entre los ListViews:

Main Layout
Main Layout

Leer más…

Programación Android, ListView & Adapter personalizado I

Ahora que hemos empezado a manejar adaptadores y listas con el Spinner, vamos a dar un paso más, utilizando el control ListView y gestionando su contenido con un Adapter personalizado, de manera que lo que visualicemos en cada celda de la lista esté diseñado por nosotros mismos.

Creando el ListView

En primer lugar debemos crear nuestro interfaz de usuario. Lógicamente debemos añadir un ListView, en el que mostraremos los datos que queramos, y en nuestro caso vamos a incorporar en la parte superior algunos TextView que indicarán el nª de la celda que ocupa el ítem seleccionado del ListView y el texto que contenga.

Quedaría así:

Layout ListView
Layout ListView

Leer más…

Programación Android, cómo usar un Spinner I

Después de un par de semanas de inactividad, debido a que ha habido que finalizar 2 proyectos y apenas ha quedado tiempo libre, volvemos a la publicar una nueva entrada.

En esta ocasión vamos a intentar explicar el uso y comportamiento de un Spinner.

Un Spinner es un elemento que ofrece un desplegable en el que poder seleccionar una de múltiples opciones, en el que además se visualiza la opción seleccionada de entre las disponibles:

Spinner desplegado
Spinner desplegado

Leer más…

Programación Android, leer y escribir archivos en memoria interna. Lanzar alarmas

android-archivador

En entradas anteriores se ha visto cómo recoger y usar los recursos de nuestra aplicación, y en esta ocasión vamos a manejar archivos en memoria interna del dispositivo.

En el ejercicio siguiente haremos una aplicación con la que introduciremos 5 tiempos distintos, los guardaremos en un archivo de texto y posteriormente los iremos leyendo para lanzar la alarma pasado el tiempo indicado. Antes partiremos de un estado inicial, en el que todos los tiempos estén marcados a 5 minutos.

Continue reading “Programación Android, leer y escribir archivos en memoria interna. Lanzar alarmas”

Programación Android, Recursos XML III (Shape)

android_resources

Esta será la tercera y última entrada sobre la definición de recursos XML. Como dijimos en la segunda parte, en esta ocasión vamos a definir el shape para el botón, e indicaremos cómo acceder a los recursos desde el código Java.

En primer lugar, definamos un shape para el botón. Para eso lo primero es crear un nuevo archivo XML, que se llame buttonshape.xml. Al crearlo no vamos a utilizar el tipo de recurso “value”, sino que le indicaremos que es un “Drawable”, y en las opciones que nos aparecerán en la parte inferior, definiremos que es un Shape:

Crear shape en proyecto android
Crear shape en proyecto android

Leer más…

Programación Android, Recursos XML II

android_resources
En esta entrada vamos a continuar con el anterior ejemplo sobre recursos XML, en el que empezamos a definir y utilizar diversos recursos de nuestro proyecto.

El siguiente paso sería crear un estilo para uno de los botones, un shape para el otro, y tendremos que definir las dimensiones de altura y anchura para el tercero.

Empecemos con la parte más sencilla, que en parte ya vimos en la anterior entrada, vamos a definir las dimensiones del botón. Para ello añadiremos los siguientes valores en el archivo dimens.xml:

<dimen name="btn_height">60dp</dimen>
<dimen name="btn_width">150dp</dimen>

Y en el XML de nuestro layout utilizaremos esas dimensiones en las propiedades height y width del botón btnDimens:

android:layout_width="@dimen/btn_width"
android:layout_height="@dimen/btn_height"

Continue reading “Programación Android, Recursos XML II”

Programación Android, Recursos XML I

android_resources

Localización

En anteriores entradas se ha hecho mención a recursos XML que se crean automáticamente con nuestro proyecto. Con mayor frecuencia hemos hablado del archivo que almacena los Strings que nuestra aplicación pueda necesitar. Lo que no se mencionó entonces fue que también podemos crear otros archivos “strings.xml, dentro de otras carpetas, que nos facilitan el poder traducir nuestra aplicación a diferentes idiomas.

Por ejemplo, podemos poner en este primer archivo strings.xml todos los Strings en Inglés, y posteriormente crear una carpeta values-es en la que guardar una copia del primer archivo, y traducir todos nuestros Strings al español, y dentro de otra carpeta values-fr poner otra copia, en la que los Strings estén traducidos al francés.

Haciendo esto, no tendremos que controlar el idioma que debemos mostrarle al usuario, ya que el propio sistema accede a la carpeta que corresponda, basándose en su propia configuración de idioma, para mostrar los Strings al usuario, y en el caso de que no exista la carpeta específica para dicho idioma mostrará el contenido del archivo por defecto (aquél que se nos genera automáticamente al crear el proyecto).

Leer más…

Programación Android, startActivityForResult (Lanzar una actividad para recibir un resultado)

En un ejemplo anterior mandamos información de nuestra actividad a la siguiente que lanzábamos, a través de los extras del Intent. Pero en android tenemos también la posibilidad de lanzar una nueva actividad a la espera de que esta nos devuelva un determinado resultado, y así tratar la información en nuestra actividad principal.

En esta ocasión vamos a explicar cómo podemos utilizar esta herramienta. Para ello diseñaremos una interfaz con dos EditText y dos Button, ambos botones van a llamar a una siguiente actividad, que lanzaremos a la espera de un resultado, y cuando recibamos el resultado, trataremos la información en función de cómo haya sido llamada la segunda actividad. La segunda actividad tendrá únicamente un EditText y un Button, en el EditText escribiremos un texto, y al darle al Button estableceremos el resultado. Este texto introducido lo mostraremos en el EditText de la primera actividad que corresponda al Button que hayamos pulsado inicialmente.

Leer más…

Programación Android, reproducción de archivos de audio (proyecto TacitasCounter PRO)

En la anterior entrada hicimos una aplicación que controlaba el tiempo que queríamos tomarnos de descanso, sin embargo, era necesario estar atentos a la pantalla para saber cuándo finalizaba el tiempo. En esta ocasión vamos a perfeccionarlo un poco, añadiendo la reproducción de archivos de audio, para lanzar una alarma que nos avise de que ha finalizado el tiempo.

Para eso, cogeremos un archivo de sonido que queramos utilizar como alarma, y haremos uso de una de las carpetas que almacenan recursos para nuestras aplicaciones, la carpeta raw. Sin embargo, si nos fijamos en la estructura de carpetas de nuestra aplicación, no existe ninguna carpeta con este nombre, por lo tanto tendremos que crearla nosotros.

La creación de una nueva carpeta se hace dándole al botón secundario (izquierdo) del ratón sobre nuestra carpeta res (la que almacena todos los recursos de nuestra app), posteriormente seleccionamos new->folder:
Leer más…

Programación Android, uso del CountDownTimer (proyecto TacitasCounter)

Sigamos con ejemplos simples, perfectos para aprender lo más básico, pero os aconsejo no subirlos al market de Android.
En esta ocasión vamos a jugar un poco con un cronómetro, para ello vamos a hacer nuestra TacitasCounter, que llevará la cuenta de tazas de café llevamos, y configuraremos el tiempo que queremos tomarnos de descanso para tomarlo. Una vez finalizado, nos mostrará un aviso temporal en pantalla.
Empezaremos definiendo un Layout en el que tendremos tres botones, dos para aumentar y disminuir el tiempo (en minutos) que tendremos de descanso, y otro para iniciar o detener la aplicación. También incluirémos TextViews para mostrar el tiempo de descanso, tanto los TextViews como los botones van a tener un tamaño de letra configurado en el XML:
TacitasCounter1

Leer más…