默认 SharedPreferences 不保存值
Posted
技术标签:
【中文标题】默认 SharedPreferences 不保存值【英文标题】:Default SharedPreferences don't save values 【发布时间】:2013-11-22 14:10:19 【问题描述】:我有这门课:
public class SharedPreferenceUtil
private SharedPreferences prefs;
private static final String PRODUCTION_MODE_URL_GET_CHECKLIST_JSON = "www.exemplo.com/json";
//configuration keys
private static final String KEY_URL_GET_CHECKLIST_JSON = "KEY_URL_GET_CHECKLIST_JSON";
public SharedPreferenceUtil(Context context)
prefs = PreferenceManager.getDefaultSharedPreferences(context);
private void initializeDefaultAppConfigurationValues()
prefs.edit().putString(KEY_URL_GET_CHECKLIST_JSON, PRODUCTION_MODE_URL_GET_CHECKLIST_JSON);
prefs.edit().commit();
public Configuration getConfiguration()
Configuration configuration = new Configuration();
initializeDefaultAppConfigurationValues();
configuration.setChecklistGetURL(prefs.getString(KEY_URL_GET_CHECKLIST_JSON,""));
return configuration;
当我保存row中的值时:prefs.edit()commit()..它返回true。当我尝试读取以下值时:prefs.getString (KEY_URL_GET_CHECKLIST_JSON, "")。它返回 "" 就好像该值没有被保存一样。
谁能帮我解决这个问题。
【问题讨论】:
【参考方案1】:您的代码似乎有些不清楚
请参考以下代码:
设置:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = settings.edit();
editor.putString("language", language);
editor.commit();
阅读:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
String language = settings.getString("language", "");
【讨论】:
我不明白区别在于:prefs.edit () putString (KEY, VALUE).; prefs.edit () commit ().;
对此:Editor editor = prefs.edit (); editor.putString (KEY, VALUE); editor.commit ();
第一种方式不起作用,而第二种方式起作用。该死的变量赋值编辑器。
类似于文件指针。您在第一种方法中做错了什么:您正在创建一个分配值的编辑器对象而不是提交相同的值,而是您正在获取新对象并提交。但是,如果您在第二种方法中正确观察,则会提交设置了 have 的相同对象。【参考方案2】:
请看下面对你有用的链接
Sharedpreference store andr retrival
【讨论】:
【参考方案3】:private SharedPreferences prefs;
你忘了static
private static SharedPreferences prefs;
所有示例都应该为 ONE
【讨论】:
以上是关于默认 SharedPreferences 不保存值的主要内容,如果未能解决你的问题,请参考以下文章
无法保存 SharedPreferences 值,而是我得到: D/InputMethodManager: showSoftInput fail
SharedPreferences 未保存在 onPause 方法中