在我的第一个活动中,我将共享首选项保存为
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字符串总是空的任何建议
答案 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();