如何获取XML中定义的Android首选项的默认值?我不想在代码和首选项XML中重复默认值的定义。
答案 0 :(得分:61)
您可以在资源(/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);
答案 1 :(得分:11)
首先,您需要在首选项XML文件中定义默认值。 然后,您可以通过调用:
在主Activity中使用默认值填充首选项PreferenceManager.setDefaultValues(this, R.xml.preference, false);
当您需要检索某个偏好时,请致电:
int value = prefs.getInt("key", null);
由于您的偏好设置已填充,因此不会获得null
值。
答案 2 :(得分:1)
在integer.xml
下创建res/values
以存储整数常量。
在prefereces.xml
参考"@integer/default_brightness"
代码context.getResources().getInteger(R.integer.default_brightness)