открытый класс DataBaseHelper
{
Context context;
private static final String DATABASE_NAME="lugaresbbdd";
private SQLiteDatabase db; // Referencia al manager.
private final int DB_VERSION = 1; // version
// Nombres para las tablas y campos
private final String TABLE_NAME = "lugares";
private final String TABLE_ROW_ID = "_id";
private final String CNOMBRE = "nombre";
private final String CDESC = "descripcion";
private final String CLAT = "latitud";
private final String CLONG="longitud";
private final String CFOTO="foto";
public DataBaseHelper(Context context)
{
this.context = context;
//Crea o abre la BBDDD
CustomSQLiteOpenHelper helper = new CustomSQLiteOpenHelper(context);
this.db = helper.getWritableDatabase();
}
/*Metodos para añadir datos a la BBDD*/
/**********************************************************************
* Metodos para añadir nombres a la BBDDD
*
* @param nombre valor para nombre
*/
public long addNombre(String nombre){
ContentValues cv = new ContentValues();
cv.put("nombre", nombre);
return db.insert("lugares", null, cv);
}
/**********************************************************************
* Metodos para añadir descrpcipciones a la BBDDD
*
* @param descripcion valor para descripcion
*/
public long addDescripcion(String descripcion){
ContentValues cv = new ContentValues();
cv.put("descripcion", descripcion);
return db.insert("lugares", null, cv);
}
/**********************************************************************
* Metodos para añadir latitudes a la BBDDD
*
* @param latitud valor para campo latitud
*/
public long addLatitud(double latitud){
ContentValues cv = new ContentValues();
cv.put("latitud", latitud);
return db.insert("lugares", null, cv);
}
/**********************************************************************
* Metodos para añadir longitud a la BBDDD
*
* @param longitud valor para campo longitud
*/
public long addLongitud(double longitud){
ContentValues cv = new ContentValues();
cv.put("longitud", longitud);
return db.insert("lugares", null, cv);
}
/**********************************************************************
* Metodos para añadir foto a la BBDDD
*
* @param foto valor para patch de la foto
*/
public long addFoto(String foto) {
ContentValues cv = new ContentValues();
cv.put("foto", foto);
return db.insert("lugares", null, cv);
}
/**********************************************************************
* * Obten todos los nombres
*
*/
public Cursor getNombres(){
Cursor respuesta = db.rawQuery("select "+TABLE_ROW_ID+","+CNOMBRE+" from "+TABLE_NAME, null);
return respuesta;
}
/**********************************************************************
* Borra una fila de la BBDD
*
* @param rowID ID de la BBDD que quiero borrar
*/
public void deleteRow(long rowID)
{
try {db.delete(TABLE_NAME, TABLE_ROW_ID + "=" + rowID, null);}
catch (Exception e)
{
Log.e("DB ERROR", e.toString());
e.printStackTrace();
}
}
/**********************************************************************
* ACTUALIZANDO UN LUGAR DE LA BBDD
* @param rowID EL ID DEL LUGAR QUE QUIERO MODIFICAR
* @param rowNombre nombre nuevo
* @param rowDesc descrpcion nuega
* @param rowLat latitud nueva
* @param rowLong longitud nueva
* @param rowFoto foto nueva
*/
public void updateRow(long rowID, String rowNombre, String rowDesc, Long rowLat, Long rowLong, String rowFoto)
{
// this is a key value pair holder used by android's SQLite functions
ContentValues values = new ContentValues();
values.put(CNOMBRE, rowNombre);
values.put(CDESC, rowDesc);
values.put(CLAT, rowLat);
values.put(CLONG,rowLong);
values.put(CFOTO,rowFoto);
// ask the database object to update the database row of given rowID
try {db.update(TABLE_NAME, values, TABLE_ROW_ID + "=" + rowID, null);}
catch (Exception e)
{
Log.e("DB Error", e.toString());
e.printStackTrace();
}
}
/**
Clase que comprueba si la tabla existe,
Si no existe, se crea
Si existe, se actualiza
Metodo que la cierra al finalizar su uso
*/
private class CustomSQLiteOpenHelper extends SQLiteOpenHelper
{
public CustomSQLiteOpenHelper(Context context)
{
super(context, DATABASE_NAME, null, DB_VERSION);
}
public void onCreate(SQLiteDatabase db)
{
String CREA_TABLA =
"CREATE TABLE " +
TABLE_NAME +
"("+
TABLE_ROW_ID + " integer primary key autoincrement not null," +
CNOMBRE + " TEXT," +
CDESC + " TEXT," +
CLAT + " REAL," +
CLONG + " REAL," +
CFOTO + " STRING" +
");";
db.execSQL(CREA_TABLA);
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
//NO HAGAS NADA
}
public void close(){
db.close();
}
}
}
public class listatab extends ListActivity{
Context context;
ListView listanombres;
DataBaseHelper ayudabbdd;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ayudabbdd = new DataBaseHelper(this);
Cursor nombresC;
nombresC = (Cursor) ayudabbdd.getNombres();
startManagingCursor(nombresC);
if(nombresC!=null){
ListAdapter adapter = new SimpleCursorAdapter(this, R.layout.listatab, nombresC, new String[] { "nombre" }, new int[] { R.id.lista });
this.setListAdapter(adapter);
this.getListView().setTextFilterEnabled(true);
}
}
}