我知道以前有人问过这个问题,但我似乎搞不清楚
我试图从以下几个方面得到我的偏好:
SharedPreferences preferences = this.getActivity().getSharedPreferences("storedName", Context.MODE_PRIVATE);
String loginemail = preferences.getString("storedName", "");但是这似乎不起作用,我有多个sharedPreferences,我需要在我的片段中得到它因为getDefaulSharedPreferences(this)不起作用。
我像这样储存我的牧师:
savePreferences("shareUniqePass", uniqePassIds.getText().toString());
savePreferences("storedName", inputEmail.getText().toString());
savePreferences("Storedpass", inputPassword.getText().toString());
private void savePreferences(String key, boolean value){
SharedPreferences sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(this);
Editor checkbox = sharedPreferences.edit();
checkbox.putBoolean(key, value);
checkbox.commit();
}
private void savePreferences(String key, String value){
SharedPreferences sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(this);
Editor names = sharedPreferences.edit();
names.putString(key, value);
names.commit();
}发布于 2014-06-16 21:11:54
不要从getSharedPreferences获得它,而是使用getDefaultSharedPreferences。
As getDefaulSharedPreferences(this) doesn't work.您使用getDefaultSharedPreferences保存数据,因此必须使用getDefaultSharedPreferences来获取保存的数据。
this是指片段的实例,而是使用getActivity()从活动中获取上下文实例。
样本:
String loginemail = PreferenceManager.getDefaultSharedPreferences(getActivity()).getString(PREF_USER_NAME, "");;发布于 2014-06-16 22:01:58
您需要确保从相同的共享首选项保存和加载数据。如果您只从一个活动/片段访问它,则应该使用getDefaulSharedPreferences(this)。
但是,如果要从几个不同的活动/片段中使用它,则应该使用:
private void savePreferences(String key, boolean value){
SharedPreferences prefs = getActivity().getSharedPreferences("storedName", Context.MODE_PRIVATE);
Editor checkbox = sharedPreferences.edit();
checkbox.putBoolean(key, value);
checkbox.commit();
}https://stackoverflow.com/questions/24252146
复制相似问题