简体   繁体   English

Android偏好的默认值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM