我无法找到导致问题的原因是从共享首选项中读取数据。以下是代码:
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上时,我得到null。
答案 0 :(得分:0)
改变这个:
SharedPreferences setting = getSharedPreferences("loginSuccess", MODE_PRIVATE);
为:
SharedPreferences setting = getSharedPreferences("loginSuccess", Context.MODE_PRIVATE);
如果不在android中使用上下文,则无法访问共享首选项的模式。
更多参考:http://developer.android.com/training/basics/data-storage/shared-preferences.html
答案 1 :(得分:0)
好的发现了问题。如文档中所提供的那样,在读取参数0时(&#34; loginSuccess&#34;, 0 )应该写入而不是 MODE_STH 以下是我从另一个活动中读取sharedPref的工作代码。
SharedPreferences settings = getSharedPreferences("loginSuccess", 0);
userid = settings.getString("userid", "default");