[英]Default value of Android preference
How do you get the default value of an Android preference defined in XML? 如何获得XML中定义的Android首选项的默认值? I don't want to repeat the definition of the default value in both the code and the preferences XML. 我不想在代码和首选项XML中重复默认值的定义。
You can define default value in resources ( /values/bool.xml
): 您可以在资源中定义默认值( /values/bool.xml
):
<resources>
<bool name="mypreference_default">true</bool>
</resources>
Use the value in the preferences.xml
: 使用preferences.xml
的值:
<CheckBoxPreference
android:defaultValue="@bool/mypreference_default"
android:key="mypreference"
android:title="@string/mypreference_title" />
Then use in code: 然后在代码中使用:
SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(context);
Boolean value = context.getResources().getBoolean(R.bool.mypreference_default);
Boolean b = p.getBoolean("mypreference", value);
First you need to define default values in your preference XML file. 首先,您需要在首选项XML文件中定义默认值。 Then you can populate preferences with default values in your main Activity by calling: 然后,您可以通过调用以下方法在主Activity中使用默认值填充首选项:
PreferenceManager.setDefaultValues(this, R.xml.preference, false);
When you need to retrieve a some preference just call: 当您需要检索某个偏好时,只需调用:
int value = prefs.getInt("key", null);
Since your preferences are populated you won't get null
value. 由于您的首选项已填充,因此您将无法获得null
值。
Create integer.xml
under res/values
to store integer constants. 在res/values
下创建integer.xml
以存储整数常量。
In prefereces.xml
reference "@integer/default_brightness"
在prefereces.xml
引用"@integer/default_brightness"
In code context.getResources().getInteger(R.integer.default_brightness)
在代码context.getResources().getInteger(R.integer.default_brightness)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.