Curso Android
UTN Mar del Plata Agosto 2013
Clase #8
Para seguir la presentación
desde la pc
Parque tecnológico MDQ
Google Street View en Argentina
Clase #7
Envio bundle:
Bundle contenedor = new Bundle();
contenedor.putExtra(“clave”,”valor”);
Intent intento = new Intent(origen.this,destino.class);
intento.putExtra(“contenedor”,contenedor);
startActivity(intento);
Recibo bundle:
Bundle contenedorRecibido = getIntent().getExtras().getBundle(“contenedor”);
contenedorRecibido.getExtras().getString(“clave”);
Clase #7
Flags
Intent intento = new Intent(origen.this,destino.class);
intento.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intento.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intento);
Base de datos en Android
Base de datos en Android
Herramientas:
Base de datos en Android
Repasemos SQLite3
SQLite es un sistema de gestión de bases de datos relacional compatible con ACID, contenida en una relativamente pequeña (~275 kiB) biblioteca escrita en C. SQLite es un proyecto de dominio público creado por D. Richard Hipp.
*
Base de datos en Android
Repasemos SQLite3 - Links
Base de datos en Android
Base de datos en Android
Primer paso:
Tengo que crear una clase JAVA (en scr*, new file, Class) que extienda de SQLiteOpenHelper
*Lo ideal es que este dentro de un paquete junto con otras clases de accesos a datos (DAOs).
Base de datos en Android
Segundo paso:
Sobreescribimos el constructor y los método onCreate() y onUpgrade().
Ambos métodos se ejecutan automáticamente dependiendo si esta o no creada la BD.
Base de datos en Android
El constructor quedaria asi:
public LibrosSQLiteHelper(Context contexto, String nombre, CursorFactory factory, int version)
{
super(contexto, nombre, factory, version);
}
Base de datos en Android
El onCreate() quedaría así:
@Override
public void onCreate(SQLiteDatabase db)
{
db.execSQL(“CREATE TABLE Libros (id INTEGER, nombre TEXT)”);
}
*Se llama cuando no encuentra el nombre que le hemos pasado en el constructor.
Base de datos en Android
El onUpgrade() quedaría así:
@Override
public void onUpgrade(SQLiteDatabase db, int versionAnterior, int versionNueva)
{
db.execSQL("DROP TABLE IF EXISTS Libros");
db.execSQL(“CREATE TABLE Libros (id INTEGER, nombre TEXT)”);
}
*Se invoca cuando en el constructor le pasemos una versión superior a la que fue creada (4to. parámetro)
Base de datos en Android
SQLiteDatabase baseDatos = getWritableDatabase();
2. Ejecuto la sentencia:
baseDatos.execSQL("INSERT INTO Libros (id,nombre) VALUES (6,’Velez Campeon’) ");
3. Cierro la base de datos:
baseDatos.close();
Base de datos en Android
SQLiteDatabase baseDatos = getWritableDatabase();
2. Escribo la sentencia:
String sql = "SELECT * FROM Libros";
3. Creo un cursor y relacionó la consulta SQL:
Cursor cursor = baseDatos.rawQuery(sql, null);
Base de datos en Android
4. Recorro el cursor:
ArrayList<Libro >libros=new ArrayList<Libro >();
while (cursor.moveToNext())
{
Libro oLibro=new Libro();
oLibro.setId_clientes(cursor.getInt(0));
oLibro.setTelefono(cursor.getString(1));
libros.add(oLibro);
}
Base de datos en Android
5. Cierro todo y apago la luz
baseDatos.close();
cursor.close();
DAO miDao = new DAO (actividad.this, nombre, null,version);
miDao.xxx();