首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sharedPreferences片段

sharedPreferences片段
EN

Stack Overflow用户
提问于 2014-06-16 21:02:08
回答 2查看 7.5K关注 0票数 2

我知道以前有人问过这个问题,但我似乎搞不清楚

我试图从以下几个方面得到我的偏好:

代码语言:javascript
复制
SharedPreferences preferences = this.getActivity().getSharedPreferences("storedName",     Context.MODE_PRIVATE);
    String loginemail = preferences.getString("storedName", "");

但是这似乎不起作用,我有多个sharedPreferences,我需要在我的片段中得到它因为getDefaulSharedPreferences(this)不起作用。

我像这样储存我的牧师:

代码语言:javascript
复制
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();
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-16 21:11:54

不要从getSharedPreferences获得它,而是使用getDefaultSharedPreferences

代码语言:javascript
复制
As getDefaulSharedPreferences(this) doesn't work.

您使用getDefaultSharedPreferences保存数据,因此必须使用getDefaultSharedPreferences来获取保存的数据。

this是指片段的实例,而是使用getActivity()从活动中获取上下文实例。

样本:

代码语言:javascript
复制
String loginemail = PreferenceManager.getDefaultSharedPreferences(getActivity()).getString(PREF_USER_NAME, "");;
票数 2
EN

Stack Overflow用户

发布于 2014-06-16 22:01:58

您需要确保从相同的共享首选项保存和加载数据。如果您只从一个活动/片段访问它,则应该使用getDefaulSharedPreferences(this)

但是,如果要从几个不同的活动/片段中使用它,则应该使用:

代码语言:javascript
复制
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();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24252146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档