我在使用靜態方法初始化新對象時遇到問題。 我有一個類似的數據庫類。如何在靜態方法中獲取此上下文
public class LatLogDBAdapter {
private final Context mCtx;
private DatabaseHelper mDbHelper;
private SQLiteDatabase mDb;
private static class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.w(TAG, DATABASE_CREATE);
db.execSQL(DATABASE_CREATE);
}
}
我有一個靜態方法在另一個類中,我喜歡使用此上下文來初始化DatabaseHelper靜態方法,但這個錯誤是「不能在靜態環境中使用此」。
我在一個單獨的類的靜態方法如下,
public class DetailMapView extends FragmentActivity {
public static void updateLocation(String number, String LatLong){
LatLogDBAdapter dbHelper = new LatLogDBAdapter(this);
}
}
我怎麼能做到這一點不是有「在靜態情況下不能使用這種」錯誤。 謝謝
也許嘗試getApplicationContext()而不是這個。 – 2013-04-06 01:30:02
是的,在DatabaseHelper中使用getApplicationContext通常很好,但是調用fn需要他已經訪問上下文。在這種情況下(在他的靜態fn中)他沒有。 – Tom 2013-04-06 01:32:24
^好吧。現在得到它。只是好奇,有什麼可以通過其他方式來獲得上下文? – 2013-04-06 01:33:39