안녕하세요 저는 글로벌 인스턴스로 데이터베이스를 만들고 싶습니다. 그래서 다른 활동에서 연락을 취할 수 있습니다. 연락처 추가를위한 하나의 활동과 연락처를 볼 수있는 다른 활동 및 연락처 삭제를위한 활동이 있습니다. 나는 모든 활동에서 액세스 할 수있는 데이터베이스의 이름으로 miAgenda
원하는데이터베이스 컨텍스트 오류
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;
}
}
: 같은
그래서 내 GlobalInstance이 있어야한다. 문제는 문맥이다. miAgenda= new BaseDatosContactos(getApplicationContext());
을 작성해야하지만 Eclipse가 오류를 발생시키기 때문에 위선적입니다. 방법 getAplicationContext()
은 BaseDatosGlobal
유형에 대해 정의되지 않았습니다.
그래서 miAgenda.insertarcontacto(....)
또는 miAgenda.borrarContacto
또는 어떤 장소에서든 사용할 수 있습니다.
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;
}
}
야해처럼
Activity
이라고합니다. getInstance(). miAgenda.insertarContacto (contactoActual); 예를 들어 어떤 활동에서 ?? 감사합니다 –네,하지만 실제로 어쨌든 컨텍스트를 전달해야합니다 ... 또 다른 예가 될 수 있습니다 : BaseDatosGlobal.getInstance (context) .miAgenda.insertarContacto (contactoActual); – Shine