2014-03-03 55 views
-1

我一直在將我的應用程序轉換爲使用片段來增加一些靈活性,但是在這樣做時,當我嘗試對數據庫進行更新時,出現NullPointerException。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) 

這是我在save.setOnClickListener Fragment.java,的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); 
+0

請讓我們知道你在哪裏以及如何初始化db變量 – Keerthivasan

+0

All set! - 最終MySQLiteHelper db = new MySQLiteHelper(mContext); – Rob

+0

在執行方法調用之前檢查'db'的值 – Keerthivasan

回答

0

片段沒有得到正確的上下文。我不得不使用getActivity()來獲得適當的上下文。

相關問題