1 of 20

Curso Android

UTN Mar del Plata Agosto 2013

Clase #8

2 of 20

Para seguir la presentación

desde la pc

3 of 20

Parque tecnológico MDQ

4 of 20

Google Street View en Argentina

5 of 20

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”);

6 of 20

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);

7 of 20

Base de datos en Android

8 of 20

Base de datos en Android

Herramientas:

  • SQLite3
  • Content Providers
  • Android Annotations

9 of 20

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.

*

10 of 20

Base de datos en Android

11 of 20

Base de datos en Android

12 of 20

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).

13 of 20

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.

14 of 20

Base de datos en Android

El constructor quedaria asi:

public LibrosSQLiteHelper(Context contexto, String nombre, CursorFactory factory, int version)

{

super(contexto, nombre, factory, version);

}

15 of 20

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.

16 of 20

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)

17 of 20

Base de datos en Android

  • Agregar, actualizar y borrar datos

  1. Abro la base de datos:

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();

18 of 20

Base de datos en Android

  • Recuperar datos

  • Abro la base de datos:

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);

19 of 20

Base de datos en Android

  • Recuperar datos

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);

}

20 of 20

Base de datos en Android

  • Recuperar datos

5. Cierro todo y apago la luz

baseDatos.close();

cursor.close();

  • Llamado al DAO:

DAO miDao = new DAO (actividad.this, nombre, null,version);

miDao.xxx();