0

在我的第一个活动中,我将我的共享偏好保存为

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 字符串总是空的任何建议

4

2 回答 2

1

你忘了做 .commit

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

settings.edit().putString("uname", username).commit();
于 2013-03-24T13:22:44.927 回答
0

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

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

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

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

所以,正确的方法是

settings.edit().putString("uname", username).commit();
于 2013-03-24T13:29:11.087 回答