27

如何获得在 XML 中定义的 Android 首选项的默认值?我不想在代码和首选项 XML 中重复默认值的定义。

4

3 回答 3

64

您可以在资源 ( ) 中定义默认值/values/bool.xml

<resources>
    <bool name="mypreference_default">true</bool>
</resources>

使用中的值preferences.xml

<CheckBoxPreference
    android:defaultValue="@bool/mypreference_default"
    android:key="mypreference"
    android:title="@string/mypreference_title" />

然后在代码中使用:

SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(context);
Boolean value = context.getResources().getBoolean(R.bool.mypreference_default);
Boolean b = p.getBoolean("mypreference", value);
于 2012-01-07T14:17:45.553 回答
13

首先,您需要在首选项 XML 文件中定义默认值。然后,您可以通过调用在主 Activity 中使用默认值填充首选项:

PreferenceManager.setDefaultValues(this, R.xml.preference, false);

当您需要检索某些首选项时,只需调用:

int value = prefs.getInt("key", null);

由于您的偏好已被填充,您将无法获得null价值。

于 2010-05-21T11:11:21.670 回答
1

创建integer.xmlunderres/values以存储整数常量。

prefereces.xml参考"@integer/default_brightness"

在代码中context.getResources().getInteger(R.integer.default_brightness)

于 2013-08-02T23:53:39.963 回答