我在使用静态方法初始化新对象时遇到问题。 我有一个类似的数据库类。如何在静态方法中获取此上下文
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