CheckBoxPreference默认值

时间:2013-03-18 23:36:25

标签: android checkbox default-value preference

我有一个CheckBoxPreference定义如下:

<CheckBoxPreference
    android:defaultValue="true"
    android:key="prefVisible"
    android:summary="@string/pref_visible_summary"
    android:title="@string/pref_visible" >
</CheckBoxPreference>

我的应用程序使用此首选项来控制视图的可见性。当我第一次启动我的应用程序时(在新的擦除模拟器上),视图不会显示。但是,当我进入首选项屏幕(活动)时,复选框显示为已选中。

这是否意味着 defaultValue 属性实际上并未设置首选项,而是仅设置复选框的值(如果没有基础数据)(如全新安装时的情况) )。这是否也意味着只有在用户第一次进入/退出首选项屏幕(活动)后才设置首选项,否则未定义

请注意,为了让我的应用程序以我打算工作的方式工作,我依赖于首选项getter方法的默认值参数,如下所示:

SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
boolean isVisible = sharedPrefs.getBoolean("prefVisible", true); // default = true

这让我有点困惑,为什么有两种方法来控制首选项的默认值:在Xml中定义它或在getBoolean方法中提供默认值。

1 个答案:

答案 0 :(得分:1)

如果您调用 PreferenceManager.setDefaultValues ,则无法设置首选项。因此,如果您在首次启动应用时调用此功能,则会显示您的视图 您可以在http://developer.android.com/guide/topics/ui/settings.html

了解更多信息