Android CheckBoxPreference默认值

Android CheckBoxPreference默认值,android,checkbox,default-value,preference,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> SharedPref

我有一个CheckBoxPreference,定义如下:

<CheckBoxPreference
    android:defaultValue="true"
    android:key="prefVisible"
    android:summary="@string/pref_visible_summary"
    android:title="@string/pref_visible" >
</CheckBoxPreference>
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
boolean isVisible = sharedPrefs.getBoolean("prefVisible", true); // default = true

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

如果调用PreferenceManager.setDefaultValues,则可以设置首选项。因此,如果您在第一次启动应用程序时调用此选项,则会显示您的视图。

您可以在

上阅读更多内容,因此在我的主要活动的onCreate()方法中,只需调用PrefereceManager.setDefaultValues?奇怪的是,如果UI定义(xml)也有默认值,为什么getter方法也有默认值?是的,但要小心flag参数。我忘了再次调用它不会重置首选项是什么意思了。您所说的“flag param”是什么意思?setDefautValues读取您在XML中设置的默认值并进行设置。