jeudi 22 janvier 2015

Error with database context

Hello i want to make a database as global instance, so i can reach from different activities ( i have one activity for add contact, another one to view contact and another one to delete contact...).


So my GlobalInstance should be like:



package com.example.informacion;

import android.content.Context;

public class BaseDatosGlobal {

public BaseDatosContactos miAgenda;

private BaseDatosGlobal() {
miAgenda = new BaseDatosContactos(getApplicationContext());
}


private static BaseDatosGlobal instance;

public static BaseDatosGlobal getInstance() {
if (instance == null) instance = new BaseDatosGlobal();
return instance;
}
}


I want miAgenda to be the name of the database accessed from any activity. the problem is the context.i should create miAgenda= new BaseDatosContactos(getApplicationContext()); but i cant because eclipse gives me error.The method getAplicationContext() is undefined for the type BaseDatosGlobal.


So i can use miAgenda.insertarcontacto(....) or miAgenda.borrarContacto or whatever from any place.


Any help or ideas are welcome


My BaseDatosContatos is like:



public class BaseDatosContactos extends SQLiteOpenHelper {


private static final int VERSION_BASEDATOS = 1;

// Nombre de nuestro archivo de base de datos
private static final String NOMBRE_BASEDATOS = "contactos.db";

// Sentencia SQL para la creación de una tabla
private static final String TABLA_CONTACTOS = "CREATE TABLE contactos" +
"(email TEXT PRIMARY KEY UNIQUE NOT NULL, nombre TEXT, telefono TEXT, direccion TEXT, miembrofacebook INT, miembrotwitter INT, miembrogoogle INT, miembrolinkedin INT, sexo INT, tipocontacto TEXT, imagen INT)";

public BaseDatosContactos(Context context) {
super(context, NOMBRE_BASEDATOS, null, VERSION_BASEDATOS);
}

@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(TABLA_CONTACTOS);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS " + TABLA_CONTACTOS);
onCreate(db);
}

public void insertarContacto (String email, String nombre, String telefono, String direccion, int miembrofacebook, int miembrotwitter, int miembrogoogle, int miembrolinkedin, int sexo, String tipocontacto, int imagen){
SQLiteDatabase db = getWritableDatabase();
if (db != null) {
ContentValues valores = new ContentValues();
valores.put("email", email);
valores.put("nombre", nombre);
valores.put("telefono", telefono);
valores.put("direccion", direccion);
valores.put("miembrofacebook", miembrofacebook);
valores.put("miembrotwitter", miembrotwitter);
valores.put("miembrogoogle", miembrogoogle);
valores.put("miembrolinkedin", miembrolinkedin);
valores.put("sexo", sexo);
valores.put("tipocontacto", tipocontacto);
valores.put("imagen", imagen);
db.insert("contactos", null, valores);
}
db.close();
}

//Creo un insertarcontacto propio pasandole un contacto
public void insertarContacto ( contactoAgenda contacto){
SQLiteDatabase db = getWritableDatabase();
if (db != null) {
ContentValues valores = new ContentValues();
valores.put("email", contacto.getMail());
valores.put("nombre", contacto.getNombre());
valores.put("telefono", contacto.getTelefono());
valores.put("direccion", contacto.getDireccion());
valores.put("miembrofacebook", contacto.isMiembroFacebook());
valores.put("miembrotwitter", contacto.isMiembroTwitter());
valores.put("miembrogoogle", contacto.isMiembroGoogle());
valores.put("miembrolinkedin", contacto.isMiembroLinnkedin());
valores.put("sexo", contacto.isSexo());
valores.put("tipocontacto", contacto.getTipoContacto());
valores.put("imagen", contacto.getDrawableImageID());
db.insert("contactos", null, valores);
}
db.close();
}

public void modificarContacto(String email, String nombre, String telefono, String direccion, int miembrofacebook, int miembrotwitter, int miembrogoogle, int miembrolinkedin, int sexo, String tipocontacto, int imagen){
SQLiteDatabase db = getWritableDatabase();
ContentValues valores = new ContentValues();
valores.put("email", email);
valores.put("nombre", nombre);
valores.put("telefono", telefono);
valores.put("direccion", direccion);
valores.put("miembrofacebook", miembrofacebook);
valores.put("miembrotwitter", miembrotwitter);
valores.put("miembrogoogle", miembrogoogle);
valores.put("miembrolinkedin", miembrolinkedin);
valores.put("sexo", sexo);
valores.put("tipocontacto", tipocontacto);
valores.put("imagen", imagen);
db.update("contactos", valores, "email=" + email, null);
//db.update("contactos", valores, "_id=" + id, null);
db.close();
}

public void modificarContacto(contactoAgenda contacto){

SQLiteDatabase db = getWritableDatabase();
ContentValues valores = new ContentValues();
valores.put("email", contacto.getMail());
valores.put("nombre", contacto.getNombre());
valores.put("telefono", contacto.getTelefono());
valores.put("direccion", contacto.getDireccion());
valores.put("miembrofacebook", contacto.isMiembroFacebook());
valores.put("miembrotwitter", contacto.isMiembroTwitter());
valores.put("miembrogoogle", contacto.isMiembroGoogle());
valores.put("miembrolinkedin", contacto.isMiembroLinnkedin());
valores.put("sexo", contacto.isSexo());
valores.put("tipocontacto", contacto.getTipoContacto());
valores.put("imagen", contacto.getDrawableImageID());
db.update("contactos", valores, "email=" + contacto.getMail(), null);
db.close();
}



public void borrarContacto(String email) {
SQLiteDatabase db = getWritableDatabase();
db.delete("contactos", "email=" + email, null);
db.close();
}

public void borrarContacto( contactoAgenda contacto) {
SQLiteDatabase db = getWritableDatabase();
db.delete("contactos", "email=" + contacto.getMail(), null);
db.close();
}


public contactoAgenda recuperarContacto(String email) {
SQLiteDatabase db = getReadableDatabase();
String[] valores_recuperar = {"email", "nombre", "telefono","direccion","miembrofacebook","miembrotwitter","miembrogoogle","miembrolinkedin","sexo","tipocontacto","imagen"};
Cursor c = db.query("contactos", valores_recuperar, "email=" + email, null, null, null, null,null);
if(c != null) {
c.moveToFirst();
}
contactoAgenda contactos = new contactoAgenda(c.getString(0), c.getString(1), c.getString(2), c.getString(3),c.getInt(4), c.getInt(5), c.getInt(6), c.getInt(7),c.getInt(8), c.getString(9), c.getInt(10));
db.close();
c.close();
return contactos;
}


public ArrayList<contactoAgenda> recuperarTodosContactos() {
SQLiteDatabase db = getReadableDatabase();
ArrayList<contactoAgenda> lista_contactos = new ArrayList<contactoAgenda>();
String[] valores_recuperar = {"email", "nombre", "telefono","direccion","miembrofacebook","miembrotwitter","miembrogoogle","miembrolinkedin","sexo","tipocontacto","imagen"};
Cursor c = db.query("contactos", valores_recuperar, null, null, null, null, null, null);
c.moveToFirst();
do {
contactoAgenda contactos = new contactoAgenda(c.getString(0), c.getString(1), c.getString(2), c.getString(3),c.getInt(4), c.getInt(5), c.getInt(6), c.getInt(7),c.getInt(8), c.getString(9), c.getInt(10));
lista_contactos.add(contactos);
} while (c.moveToNext());
db.close();
c.close();
return lista_contactos;
}

}

Aucun commentaire:

Enregistrer un commentaire