我正在使用Android 2.1 sdk,我正在尝试将用户登录会话保存到共享首选项,事情是在将值保存到共享首选项后,我无法检索它。在这里,我粘贴了我用来保存并从SharedPrefrence中获取值的代码。
public void setValue(String name, String value, String prefName) {
sharedPref = mContext.getSharedPreferences(prefName, Context.MODE_PRIVATE);
sharedPref.edit().putString(name, value);
sharedPref.edit().commit();
}
public String getValue(String name, String prefName) {
String value = null;
sharedPref = mContext.getSharedPreferences(prefName, Context.MODE_PRIVATE);
value = sharedPref.getString(name, value);
return value;
}
我是否遗漏了此代码中的一些内容,我在保存和检索值时没有检索到任何异常。谢谢你的帮助。
答案 0 :(得分:3)
每次调用edit()
都会返回一个新的Editor
实例。所以你得到一个实例,做出改变并不管它。然后你得到第二个并且在没有更改的情况下提交它,这导致首选项中没有值更改。
在commit()
:
sharedPref.edit().putString(name, value).commit();
或者使用一个特定实例将其分成多行:
Editor e = sharedPref.edit();
e.putString(name, value);
e.commit();
答案 1 :(得分:0)
private SharedPreferences myPrefs;
myPrefs = Actionactivity.this.getSharedPreferences("myPrefs", MODE_WORLD_WRITEABLE);
SharedPreferences.Editor prefsEditor = myPrefs.edit();
prefsEditor.putString("Mobile_no", getText_no.getText().toString().trim());
prefsEditor.commit();
myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
myPrefs.getString("Mobile_no", "");
尝试这一个代码工作