je sais encore vraiment toute cette chose de contexte, nous avons trouvé beaucoup de programmation Android. donc j'ai essayé de créer une fonction d'abandonner toutes mes tables, et voici un mon code partiel:passant le contexte de non-activité
public class DBAdapter {
private static class DbHelper extends SQLiteOpenHelper {
private boolean databaseCreated = false;
public DbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public void deleteTables(){
Log.d("DBAdapter","dlm drop tables pre");
this.sqlDatabase.execSQL("DROP TABLE IF EXISTS ["+TABLE_TV+"];");
this.sqlDatabase.execSQL("DROP TABLE IF EXISTS ["+TABLE_CAMERA+"];");
this.sqlDatabase.execSQL("DROP TABLE IF EXISTS ["+TABLE_GPS+"];");
}
}
}
et la partie où je vais appeler la fonction deleteTables
public class UpdateDatabase {
public void updateTable(String table,JSONObject jsonObject){
DBAdapter db = new DBAdapter(this);
db.deleteTables();
}
}
mais bien sûr il retournera une erreur, puisque DBAdapter attend un contexte. La classe publique UpdateDatabase n'est pas une classe d'activité. Appeler DbAdapter db = new DBAdapter (this) de la classe d'activité fonctionnera juste find. Alors, comment puis-je trouver une solution à ce problème?
grâce
'updateTable' est une méthode _static, il n'a pas' this' –
ok j'ai corrigé cela et enlevé static de updateTable, mais quand même, comment puis-je passer le contexte à DBAdapter d'ici? – imin