NullPointerException在添加Fragment后获取可写数据库

时间:2014-03-03 14:46:59

标签: java android nullpointerexception fragment

我一直在转换我的应用程序以使用片段来增加灵活性,但是当我尝试对数据库进行更新时,我得到了NullPointerException。

03-03 09:26:40.610: E/AndroidRuntime(20613): java.lang.NullPointerException
03-03 09:26:40.610: E/AndroidRuntime(20613):    at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)
03-03 09:26:40.610: E/AndroidRuntime(20613):    at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)

这是在我的Fragment.java中的save.setOnClickListener,onClick

db.getWritableDatabase();
                db.addGasLog(new gasLog(pricePerGallonInt, gallonsInt, odometerInt, todayString, fill, commentsString, totalSpent));

当我从普通的NewRecord.java(预添加片段)执行此操作时,我可以将条目添加到数据库中。

有什么想法吗?

编辑:我已经阅读了一些关于人们在打开片段之前在MainActivity.java中打开连接的事情,如果你需要查看那里的代码,请告诉我。

EDIT2:

这是我初始化db

的地方
final MySQLiteHelper db = new MySQLiteHelper(mContext);

1 个答案:

答案 0 :(得分:0)

片段没有正确获取上下文。我必须使用getActivity()来获取适当的上下文。