首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android CheckBoxPreference默认值

Android CheckBoxPreference默认值
EN

Stack Overflow用户
提问于 2010-10-11 23:55:02
回答 3查看 26.1K关注 0票数 18

我的CheckBoxPreference有以下XML代码

代码语言:javascript
复制
<CheckBoxPreference
    android:key="pref_boot_startup"
    android:title="Auto start"
    android:defaultValue="true" />

但是,当我在代码中检索首选项时,值是false

代码语言:javascript
复制
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean autoStart = sharedPreferences.getBoolean("pref_boot_startup", true);

我的autoStart变量返回false

有什么特别的原因吗?我是否错过了将默认值设置为true的步骤

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-12 09:22:22

您必须先设置默认值:

代码语言:javascript
复制
    @Override
    protected void onCreate()
    {
        PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
        SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
        boolean autoStart = sharedPreferences.getBoolean("pref_boot_startup", true);

     {...}
    }
票数 35
EN

Stack Overflow用户

发布于 2010-12-06 20:18:36

使用垃圾狗的方法,但值得注意的是,这是Android的一个bug:

http://code.google.com/p/android/issues/detail?id=6641

票数 12
EN

Stack Overflow用户

发布于 2012-01-13 20:15:32

代码语言:javascript
复制
    // These two lines are working around an android bug:
    // http://code.google.com/p/android/issues/detail?id=6641
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    prefs.edit().putBoolean(REFRESH_COUNTER_PREF, prefs.getBoolean(REFRESH_COUNTER_PREF, true)).commit();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3907830

复制
相关文章

相似问题

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