共享偏好问题

时间:2012-03-23 09:56:25

标签: android sharedpreferences

我正在使用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;
}

我是否遗漏了此代码中的一些内容,我在保存和检索值时没有检索到任何异常。谢谢你的帮助。

2 个答案:

答案 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", "");

尝试这一个代码工作