2015-11-04 72 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