无法从Android中的sharedprefs读取
问题描述:
我无法找到导致我从共享首选项读取数据的问题。这里是代码:无法从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 in ... rence(“loginSuccess”,)时,可以书写而不是MODE_STH 这是我从另一个活动中读取sharedPref的工作代码。
SharedPreferences settings = getSharedPreferences("loginSuccess", 0);
userid = settings.getString("userid", "default");
答
更改此:
SharedPreferences setting = getSharedPreferences("loginSuccess", MODE_PRIVATE);
到:
共享偏好的模式离不开在机器人使用上下文来访问。
对于多个参考:http://developer.android.com/training/basics/data-storage/shared-preferences.html
您也没有指定上下文。与OP使用的不一样。 – greenapps
如果你想指定一个上下文,你的语句应该看起来像context.getShare ...... – greenapps
当我添加Context.MODE_PRIVATE时没有任何改变。也尝试使用context.getshared .....但Android工作室强调它。仍然有问题!我不明白是什么问题... – orkundzgn