2015-11-04 33 views
0

我無法找到導致我從共享首選項讀取數據的問題。這裏是代碼:無法從Android中的sharedprefs讀取

SharedPreferences setting = getSharedPreferences("loginSuccess", MODE_PRIVATE); 
     SharedPreferences.Editor mPrefsEditor = setting.edit(); 
     mPrefsEditor.putString("userid", profile.getId()); 
     mPrefsEditor.putString("userFirstName", profile.getFirstName()); 
     mPrefsEditor.putString("userLastName", profile.getLastName()); 
     mPrefsEditor.putString("userPictureUri", profile.getProfilePictureUri(200, 200).toString()); 
     mPrefsEditor.commit(); 

而當我檢查我的手機上的shared_prefs文件夾,我看到數據像;

<?xml version='1.0' encoding='utf-8' standalone='yes' ?> 
<map> 
    <string name="userFirstName">Blah</string> 
    <string name="userPictureUri">https://graph.fac.....er_2012%3Atrue%7D</string> 
    <string name="userLastName">BlahBlah</string> 
    <string name="userid">546468168*****245</string> 
</map> 

當我嘗試讀取,

SharedPreferences setting = getSharedPreferences("loginSuccess", MODE_PRIVATE); 
     String userid = setting.getString("userid", null); 

然而,當我把文本上的TextView我得到空。

回答

0

確定發現這個問題。正如文檔中所提供的,在讀取參數0 in ... rence(「loginSuccess」,)時,可以書寫而不是MODE_STH 這是我從另一個活動中讀取sharedPref的工作代碼。

SharedPreferences settings = getSharedPreferences("loginSuccess", 0); 
userid = settings.getString("userid", "default"); 
0

更改此:

SharedPreferences setting = getSharedPreferences("loginSuccess", MODE_PRIVATE); 

到:

共享偏好的

模式離不開在機器人使用上下文來訪問。

對於多個參考:http://developer.android.com/training/basics/data-storage/shared-preferences.html

+0

您也沒有指定上下文。與OP使用的不一樣。 – greenapps

+0

如果你想指定一個上下文,你的語句應該看起來像context.getShare ...... – greenapps

+0

當我添加Context.MODE_PRIVATE時沒有任何改變。也嘗試使用context.getshared .....但Android工作室強調它。仍然有問題!我不明白是什麼問題... – orkundzgn