首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >静态SharedPreferences

静态SharedPreferences
EN

Stack Overflow用户
提问于 2011-06-05 14:17:33
回答 1查看 6.8K关注 0票数 3

我在一个活动中有两个方法

代码语言:javascript
复制
private void save(String tag, final boolean isChecked)
{
    SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();


    editor.putBoolean(tag, isChecked);
    editor.commit();
}

private boolean load(String tag) {
    SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
    return sharedPreferences.getBoolean(tag, false);

}

我不想为了从同一个活动中的另一个静态方法中检索load的值而使load成为静态的。但是,当我试图使load方法成为静态方法时,我当然会因为一个非静态引用而得到一个错误。我怎么才能让它工作呢?

我试过这个Accessing SharedPreferences through static methods,但没有成功。

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-05 15:35:59

您可以保存和加载Application-wide共享首选项,而不是Activity专用的首选项

代码语言:javascript
复制
private static boolean load(String tag) {
    SharedPreferences sharedPreferences = Context.getApplicationContext().getSharedPreferences("namespace", Context.MODE_PRIVATE);
    return sharedPreferences.getBoolean(tag, false);
}

如果您这样做,请确保您也以相同的方式存储首选项(通过使用Context.getApplicationContext().getSharedPreferences)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6241340

复制
相关文章

相似问题

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