2014-01-21 35 views
0

logcat的錯誤:顯示java.lang.NullPointerException使用preferencemanager

01-21 07:23:04.021: E/AndroidRuntime(361): Caused by: java.lang.NullPointerException } 

在我相信是這一塊的Java代碼:

while (date.equals("01:00:00") || bSet); 
    int randomNumber = rand.nextInt(ids.length); 
    String last = ((getResources().getString(ids[randomNumber]))); 
    tv.setText(last); 
    edit.putString(last, null); 
    edit.commit(); 

我以前是這樣,之前設置首我的創建方法:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
    SharedPreferences.Editor edit = prefs.edit(); 
+0

Java中的所有可執行代碼必須在方法內部。 – Simon

+0

使用'getApplicationContext()'而不是'this'。 –

回答

2

上下文在onCreate之前不可用,因此您不能使用this 這裏:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
    SharedPreferences.Editor edit = prefs.edit(); 

放在這裏面的onCreate喜歡:

SharedPreferences prefs; 
    SharedPreferences.Editor edit; 

和的onCreate

prefs = PreferenceManager.getDefaultSharedPreferences(this); 
    edit = prefs.edit(); 
相關問題