Download - 3-4 - Programación Básica - Android
![Page 1: 3-4 - Programación Básica - Android](https://reader034.vdocumento.com/reader034/viewer/2022052303/553fb97c550346f07d8b48f9/html5/thumbnails/1.jpg)
MC. Roberto Domínguez Estrada [email protected]
![Page 2: 3-4 - Programación Básica - Android](https://reader034.vdocumento.com/reader034/viewer/2022052303/553fb97c550346f07d8b48f9/html5/thumbnails/2.jpg)
Android
![Page 3: 3-4 - Programación Básica - Android](https://reader034.vdocumento.com/reader034/viewer/2022052303/553fb97c550346f07d8b48f9/html5/thumbnails/3.jpg)
Persistencia con SQLite http://www.sqlite.org/docs.html
![Page 4: 3-4 - Programación Básica - Android](https://reader034.vdocumento.com/reader034/viewer/2022052303/553fb97c550346f07d8b48f9/html5/thumbnails/4.jpg)
Estructura de Paquetes Sugerida
![Page 5: 3-4 - Programación Básica - Android](https://reader034.vdocumento.com/reader034/viewer/2022052303/553fb97c550346f07d8b48f9/html5/thumbnails/5.jpg)
Tabla de “Contactos” _id nombre email
1 María González [email protected]
2 Pedro López [email protected]
3 Juan García [email protected]
![Page 6: 3-4 - Programación Básica - Android](https://reader034.vdocumento.com/reader034/viewer/2022052303/553fb97c550346f07d8b48f9/html5/thumbnails/6.jpg)
SQLite – Tipo de Datos SQLite JAVA
TEXT String
INTEGER long
REAL double
*La llave primaria siempre debe llamarse “_id” por convenciones de
Android
![Page 7: 3-4 - Programación Básica - Android](https://reader034.vdocumento.com/reader034/viewer/2022052303/553fb97c550346f07d8b48f9/html5/thumbnails/7.jpg)
Constantes public class Constantes {
public static final String COL_ID = “_id";
public static final String COL_NOMBRE = "nombre";
public static final String COL_EMAIL = "email";
public static final int VERSION_BD = 1;
public static final String NOMBRE_BD = "Agenda";
public static final String SQL_CREAR_TABLA_CONTACTOS = "create table contactos (_id integer primary key autoincrement, nombre text not null, email text not null);";
public static final String TABLA_CONTACTOS = "contactos";
public static final String LOG_BD = "ContactosDAOImpl";
}
![Page 8: 3-4 - Programación Básica - Android](https://reader034.vdocumento.com/reader034/viewer/2022052303/553fb97c550346f07d8b48f9/html5/thumbnails/8.jpg)
SQLiteOpenHelper Clase auxiliar que permite la creación de Bases de
Datos y el control de su versión
Métodos a sobre-escribir: onCreate(SQLiteDatabase bd)
onUpgrade(SQLiteDatabase bd, int
versionAnterior, int versionNueva)
onOpen(SQLiteDatabase bd)
![Page 9: 3-4 - Programación Básica - Android](https://reader034.vdocumento.com/reader034/viewer/2022052303/553fb97c550346f07d8b48f9/html5/thumbnails/9.jpg)
AuxiliarBD
public class AuxiliarBD extends SQLiteOpenHelper {
public AuxiliarBD(Context contexto) {
super(contexto, Constantes.NOMBRE_BD,
null, Constantes.VERSION_BD);
}
@Override
public void onCreate(SQLiteDatabase bd) {
try {
bd.execSQL(Constantes.SQL_CREAR_TABLA_CONTACTOS);
} catch (SQLException e) {
e.printStackTrace();
}
}
![Page 10: 3-4 - Programación Básica - Android](https://reader034.vdocumento.com/reader034/viewer/2022052303/553fb97c550346f07d8b48f9/html5/thumbnails/10.jpg)
AuxiliarBD
@Override
public void onUpgrade(SQLiteDatabase bd, int versionAnterior,
int versionNueva) {
bd.execSQL("DROP TABLE IF EXISTS " +
Constantes.TABLA_CONTACTOS);
onCreate(bd);
}
}
![Page 11: 3-4 - Programación Básica - Android](https://reader034.vdocumento.com/reader034/viewer/2022052303/553fb97c550346f07d8b48f9/html5/thumbnails/11.jpg)
ContactosDAO
public interface ContactosDAO {
public ContactosDAO abrir() throws SQLException;
public void cerrar();
public long insertarContacto(String nombre, String email);
public boolean borrarContacto(long id);
public Cursor obtenerContactos();
public Cursor obtenerContacto(long id) throws SQLException;
public boolean actualizarContacto(long id, String nombre, String
email);
}
![Page 12: 3-4 - Programación Básica - Android](https://reader034.vdocumento.com/reader034/viewer/2022052303/553fb97c550346f07d8b48f9/html5/thumbnails/12.jpg)
ContactosDAOImpl
public class ContactosDAOImpl implements ContactosDAO {
private final Context contexto;
private AuxiliarBD auxBD;
private SQLiteDatabase bd;
public ContactosDAOImpl(Context ctx) {
this.contexto = ctx;
auxBD = new AuxiliarBD(contexto);
}
public ContactosDAO abrir() throws SQLException {
bd = auxBD.getWritableDatabase();
return this;
}
public void cerrar() {
auxBD.close();
}
Crear/Abre una BD
para lectura/escritura
![Page 13: 3-4 - Programación Básica - Android](https://reader034.vdocumento.com/reader034/viewer/2022052303/553fb97c550346f07d8b48f9/html5/thumbnails/13.jpg)
ContactosDAOImpl
public long insertarContacto(String nombre, String email) {
ContentValues valoresIniciales = new ContentValues();
valoresIniciales.put(Constantes.COL_NOMBRE, nombre);
valoresIniciales.put(Constantes.COL_EMAIL, email);
return bd.insert(Constantes.TABLA_CONTACTOS, null,
valoresIniciales);
}
public boolean borrarContacto(long id) {
return bd.delete(Constantes.TABLA_CONTACTOS,
Constantes.COL_ID + "=" + id, null) > 0;
}
public Cursor obtenerContactos() {
return bd.query(Constantes.TABLA_CONTACTOS, new String[] {
Constantes.COL_ID, Constantes.COL_NOMBRE, Constantes.COL_EMAIL },
null, null, null, null, null);
}
![Page 14: 3-4 - Programación Básica - Android](https://reader034.vdocumento.com/reader034/viewer/2022052303/553fb97c550346f07d8b48f9/html5/thumbnails/14.jpg)
ContactosDAOImpl
public Cursor obtenerContacto(long id) throws SQLException {
Cursor cursor = bd.query(true, Constantes.TABLA_CONTACTOS,
new String[] { Constantes.COL_ID, Constantes.COL_NOMBRE,
Constantes.COL_EMAIL }, Constantes.COL_ID + "=" + id,
null, null, null, null, null);
if (cursor != null) {
cursor.moveToFirst();
}
return cursor;
}
public boolean actualizarContacto(long id, String nombre, String
email) {
ContentValues nuevosValores = new ContentValues();
nuevosValores.put(Constantes.COL_NOMBRE, nombre);
nuevosValores.put(Constantes.COL_EMAIL, email);
return bd.update(Constantes.TABLA_CONTACTOS, nuevosValores,
Constantes.COL_ID + "=" + id, null) > 0;
}
}
![Page 15: 3-4 - Programación Básica - Android](https://reader034.vdocumento.com/reader034/viewer/2022052303/553fb97c550346f07d8b48f9/html5/thumbnails/15.jpg)
Ejemplo de Uso
…Dentro de un Activity (contexto)…
. . .
ContactosDAO contactosDAO = new ContactosDAOImpl(this);
contactosDAO.abrir();
long idContacto = contactosDAO.insertarContacto(“Juan
Garcia”, “[email protected]”);
contactosDAO.cerrar();
. . .
![Page 16: 3-4 - Programación Básica - Android](https://reader034.vdocumento.com/reader034/viewer/2022052303/553fb97c550346f07d8b48f9/html5/thumbnails/16.jpg)
Implemente una Agenda de Contactos
![Page 17: 3-4 - Programación Básica - Android](https://reader034.vdocumento.com/reader034/viewer/2022052303/553fb97c550346f07d8b48f9/html5/thumbnails/17.jpg)
Indicaciones Crear una Base de Datos para almacenar contactos
en Android
Permitir las operaciones: Nuevo contacto
Consultar lista de contactos
Editar un contacto
Borrar un contacto
Referencia Javadoc:
http://developer.android.com/reference/android/database/sqlite/package-summary.html