2017-01-01 32 views
0

我有一個類,我想讓SharedPreferences保存在Android應用程序的PreferencesActivity中。我試過這個,但它給出了一個空指針異常。再次,我使用一個類,而不是一個活動來獲得我所需要的。如何從PreferenceActivity獲取SharedPreferences

public PrefsInterface(Context context) 
{ 
    gson = new Gson(); 
    sPreferences = PreferenceManager.getDefaultSharedPreferences(context); 
    String json = sPreferences.getString("myJsonCity", ""); 
    if(!json.isEmpty()) 
    { 
     Type t = new TypeToken<CityObj>(){}.getType(); 
     myCity = gson.fromJson(json, t); 
     //System.out.println(myCity.city()); 
    } 
    else 
    { 
     System.out.println("Error getting city from settings."); 
    } 

} 
+0

在活動相同的代碼工作與否? –

+0

分享您的活動代碼和異常堆棧跟蹤的一部分 –

+0

這應該有效。使用一個類並傳遞Context是一種合法的方式。你能否添加一些關於異常本身的更多細節? – yakobom

回答

0

我想出了爲什麼我沒有得到任何東西。我是在保存錯誤的東西。而不是保存這樣的:

SharedPreferences preferences==PreferenceManager.getDefaultSharedPreferences(this); 
    SharedPreferences.Editor editor=preferences.edit(); 
    editor.putString("Name","Harneet"); 
    editor.commit(); 

我保存這樣的:

SharedPreferences.Editor = this.getPreferences(MODE_PRIVATE).edit(); 

這意味着我無法檢索,因爲私人模式保存設置。

相關問題