无法在其他活动中访问我的共享偏好

时间:2013-03-24 13:21:30

标签: android sharedpreferences

在我的第一个活动中,我将共享首选项保存为

SharedPreferences settings = getSharedPreferences(PREFS_NAME, MODE_WORLD_READABLE);
settings.edit().putString("uname", username);

然后我在另一项活动中阅读

  SharedPreferences settings = getSharedPreferences(PREFS_NAME, MODE_WORLD_READABLE);
  String uname = settings.getString("uname", "");

但uname字符串总是空的任何建议

2 个答案:

答案 0 :(得分:1)

你忘了做.commit

http://developer.android.com/reference/android/content/SharedPreferences.Editor.html#commit%28%29

settings.edit().putString("uname", username).commit();

答案 1 :(得分:0)

所以你的问题很明显。看看这个

settings.edit().putString("uname", username);

您尝试通过String保存SharedPreferences.Editor,但如果String可以永久保存到SharedPreferences中,您还需要调用 commit(),这意味着您想要确认你的操作。在其他情况下,您的价值永远不会被保存。

你可以把它想象成一个“交易”。如果您不提交事务,则将丢弃在其中执行的任何更改。

所以,正确的方法是

settings.edit().putString("uname", username).commit();