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

Android SQLite

En la última entrada nos quedamos a falta de lanzar una segunda Activity con los datos del ítem seleccionado del ListView, para poder modificarlos posteriormente. Con esta entrada terminaremos este ejemplo de como usar bases de datos en Android, con POO y MVC.

Implementar OnItemClickListener

En primer lugar vamos a implementar el Listener OnItemClickListener en la primera Activity, para que cuando suceda este evento recojamos la información del ítem seleccionado y lo enviemos a la segunda Activity. Añadiremos el Listener a la firma de nuestra Activity, y posteriormente escribiremos el método que nos pide:

public class MainActivity extends Activity implements OnClickListener, OnItemClickListener {
/* ... */

	@Override
	public void onItemClick(AdapterView<?> adapter, View view, int position,
			long id) {
		// TODO Añadir el código para recuperar la información y mandarla a la
		// segunda Activity.

	}
}

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 II

En la anterior entrada dimos los primeros pasos en el uso del Spinner en Android, añadiendo las opciones que queríamos que se incluyeran en él y quedamos a falta de ver cómo gestionar la opción elegida del Spinner.

Creando las descripciones

En primer lugar vamos a crear una nueva variable, que va a incluir las descripciones de los animales. Para ello vamos a usar un TreeMap, que contendrá como clave el nombre del animal, y como valor su descripción:

private TreeMap<String, String> descrip;

Y creamos un método que va a rellenar los datos de la variable:

public void rellenarDescripciones() {
	// Inicializamos la variable.
	descrip = new TreeMap<String, String>();

	// Rellenamos la variable con las descripciones.
	descrip.put(
		"Perro",
		"Mamífero carnívoro de la familia de los cánidos, doméstico, con cuatro patas, un olfato muy fino y de gran diversidad de tamaños, formas y pelajes, que sirve al ser humano como animal de compañía o para cazar.");
	descrip.put(
		"Gato",
		" Mamífero carnívoro doméstico, de la familia de los félidos, de patas cortas y uñas retráctiles, cabeza redonda, y pelo espeso y suave; suele tenerse como animal de compañía: el gato es un hábil cazador de ratones.");
	descrip.put(
		"Caballo",
		"Mamífero équido, macho, de cuerpo fuerte, orejas pequeñas, cola cubierta de largo pelo y patas terminadas en casco; es herbívoro, se domestica con facilidad y se suele usar para montar en él.");
	descrip.put(
		"Canario",
		"Pájaro de plumaje amarillo, verdoso o casi blanco, muy apreciado por su canto y que se suele criar como ave doméstica.");
	descrip.put(
			"Vaca",
			"Hembra del toro. De joven se denomina ternera, becerra, vaquilla o novilla. Su leche constituye un alimento completísimo y, después de la de burra, es la más parecida a la de la mujer.");
	descrip.put(
		"Cerdo",
		"Mamífero doméstico de cuerpo grueso, patas cortas, cabeza grande, orejas caídas, hocico chato y casi cilíndrico y cola en forma de hélice, que se cría para aprovechar su carne.");
}

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…