我目前正在尝试在本地保存聊天名,但只保存了最新的偏好设置。下面是我将字符串保存到特定键的方式。
public void saveSettings(Context context, String key, String value){
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = preferences.edit();
editor.putString(key, value).apply();
这是我检索字符串的方式:
public String getString(Context context, String key, String defaultValue){
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
return preferences.getString(key,defaultValue);
}
问题是它只返回最后保存的字符串,其余的键将返回defaultvalue
。例如,我用第一种方法用3个不同的键保存3个不同的字符串。尝试使用getString()
检索字符串时
它只会返回上次保存的密钥的字符串。
答案 0 :(得分:0)
也许我错了,但我在编辑器上看不到提交......
答案 1 :(得分:0)
正式保存首选项的方法是使用commit()
方法,如下所示:
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = preferences.edit();
editor.putString(key, value);
editor.commit();