Está en la página 1de 2

package net.androoid.tutorial.basesdatosSimple; import java.util.ArrayList; import import import import import import android.app.ListActivity; android.database.Cursor; android.database.sqlite.SQLiteDatabase; android.os.Bundle; android.widget.

ArrayAdapter; android.widget.ListAdapter;

/* La actividad ListActivity se utiliza para mostrar por pantalla * una lista de elementos. Esta actividad alberga por defecto * un widget ListView al que se le asocia una fuente de datos como * por ejemplo una array o un Cursor. * Adems, la ListActivity trae tambin un layout por defecto que * consiste en una lista a pantalla completa. */ public class BasesDatosSimple extends ListActivity { private final String BD_NOMBRE = "baseDatosSimple"; private final String BD_TABLA = "usuarios"; /** Se llama a este mtodo cuando accedemos a la Actividad por primera vez. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ArrayList<String> salida = new ArrayList<String>(); SQLiteDatabase myDB = null; /* Abrimos la base de datos. * Si no exista previamente se crear automticamente. */ myDB = this.openOrCreateDatabase(BD_NOMBRE, 1, null); /* Creamos la tabla de usuarios en la base de datos. * En caso de que existiera previamente no da error ('IF NOT EXISTS'). */ myDB.execSQL("CREATE TABLE IF NOT EXISTS " + BD_TABLA + " (nombre VARCHAR, apellido VARCHAR," + " pais VARCHAR, edad INT(3));"); /* Introducimos un par de usuarios de ejemplo en la base de datos. */ myDB.execSQL("INSERT INTO " + BD_TABLA + " (nombre, apellido, pais, edad)" + " VALUES ('Ingrid', 'Gonzalez', 'Spain', 20);"); myDB.execSQL("INSERT INTO " + BD_TABLA + " (nombre, apellido, pais, edad)" + " VALUES ('Carlos', 'Garcia', 'Peru', 30);"); /* Ahora hacemos una select sobre las columnas 'nombre' y 'edad' * para todos los usuarios mayores de 18 aos. * Slo mostraremos los primeros 7 usuarios. */ String[] columns = {"nombre","edad"}; Cursor c = myDB.query(BD_TABLA, columns, "edad > 18", null, null, null, nu ll, "7"); /* Nos aseguramos de que se haya creado el cursor. */ if (c != null) { /* Obtenemos el ndice de las columnas que vamos a utilizar. */

int columnaNombreIndice = c.getColumnIndexOrThrow("nombre"); int columnaEdadIndice = c.getColumnIndexOrThrow("edad"); /* Creamos un entero a modo de contador * para listar los nombres por pantalla. */ int i = 1; /* El cursor devuelto est posicionado antes de la primera entrada. * Avanzamos una posicin. */ while (c.moveToNext()){ /* Obtenemos el valor de la columna nombre */ String valorColumnaNombre = c.getString(columnaNombreIndice); /* Obtenemos el valor de la columna edad */ int valorColumnaEdad = c.getInt(columnaEdadIndice); /* El nombre de una columna tambin * se puede recuperar mediante su ndice. * En este caso no es muy til por que ya * sabemos el nombre de la columna pero * os lo muestro a modo de ejemplo. */ String nombreColumnaEdad = c.getColumnName(columnaEdadIndice); /* Aadimos la entrada a la lista que mostraremos por pantalla. */ salida.add("" + i + ": " + valorColumnaNombre + " (" + nombreColumnaEdad + ": " + valorColumnaEdad + ")"); i++; } } /* Cerramos la conexin a la base de datos */ if (myDB != null) myDB.close(); /* Las clases que implementan la interfaz ListAdapter se encargan de asoci ar * los datos que queremos mostrar por pantalla (nuestra arrayList 'salida' ) * con el objeto ListView que alberga por defecto la actividad ListActivit y. * En este caso utilizaremos un layout lineal vertical predefinido por And roid. */ ListAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, salida); /* Asociamos el adaptador que acabamos de crear a esta actividad */ this.setListAdapter(adapter); } }