2014-03-05 64 views
1

我正在使用共享首選項來保存數據並從其他活動訪問它。我使用了建議的方法,但它們似乎不起作用。無法從Android中的某個活動獲取SharedPreferences值

代碼:

private static String Module_Pref="ModulePreference"; 

活動A:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
     SharedPreferences.Editor editor = prefs.edit(); 
     editor.putString(key, value); 
     editor.commit(); 

活性B:

sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
     tempValue= sharedPreferences.getString(Module_Pref, "empty"); 

活性C:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
     SharedPreferences.Editor editor = prefs.edit(); 
     editor.putString(key, value); 
     editor.commit(); 

在這裏,如果我們運行的第一次,然後通過A,設置NOSAVE,那麼如果我們去活性C,然後保存數據。

這段代碼有什麼問題,我得到一個null。我看了文件資源管理器也pref文件沒有保存。

回答

1

你應該使用這樣的輸入數據:

editor.putString(Module_Pref, "value that you want to store"); 
editor.commit(); 

現在爲了得到該字符串可以存儲值後,使用此:

sharedPreferences.getString(Module_Pref, "empty"); 
0
Activity A: 

     SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
       SharedPreferences.Editor editor = prefs.edit(); 
       editor.putString(key,value); 
       editor.commit(); 

    Activity B: 

    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
      tempValue= sharedPreferences.getString(key, "emptyValue"); 
0
sharedPreferences.getString(Module_Pref, "empty"); 

意味着你要檢索關鍵字Module_Pref的「值」,如果沒有,則默認返回 - >「空」。

因此,要麼,

editor.putString(Module_Pref, value); 

或者

sharedPreferences.getString(key, "empty"); 

,其中 「關鍵」 是一樣的,在關鍵:

editor.putString(key, value); 
2

使用這種方法來創建sharedPreference,然後訪問它與同一個應用程序中的任何活動中的相同名稱

SharedPreference sp; 
sp = getApplicationContext().getSharedPreferences(My_PREFERENCE, 
       context.MODE_PRIVATE); 
Editor e = sp.edit(); 
e.put(key,value); 
e.commit(); 

並且在另一個活動使用得到相同sharedPreference此方法

SharedPreference sp; 
sp = getApplicationContext().getSharedPreferences(My_PREFERENCE, 
       context.MODE_PRIVATE); 
sp.get(key,value); 

`

0
SharedPreferences sp = getSharedPreferences("main",0); 
       SharedPreferences.Editor ed = sp.edit(); 
       ed.putString("personEmail",personEmail); 
       ed.putString("personName",personName); 
       ed.commit(); 

時,這是用於在共享PREF &節約值用於訪問它使用 - >

SharedPreferences sp = getSharedPreferences("main",0); 
       sp.getString("personEmail",null); 
       sp.getString("personName",null); 
相關問題