获取在preferences.xml中定义的默认值

我想使用AndroidPreferenceManager从myPreferences.xml中检索默认值。我可以将其与int和字符串一起使用,但是如何从布尔值加载默认值?

helperMethods中的代码段:

    public static void putPref(String key,String value,Context context) {
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
        SharedPreferences.Editor editor = prefs.edit();
        editor.putString(key,value);
        editor.commit();
    }

    public static String getPref(String key,Context context) {
        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
        return preferences.getString(key,null);
    }
    public static Boolean getPrefBoolean(String key,Context context) {
        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
        return preferences.getBoolean(key,null);
    }

myPreferences中的代码段

        <EditTextPreference
        app:defaultvalue="@string/value_content_id"
        app:key="@string/key_device_id"
        app:summary="@string/device_id"
        app:title="@string/title_content_id" />


        <Preference
        app:key="key_wifi"
        app:summary="WifiSettings"
        app:title="Set Wifi"  />

        <CheckBoxPreference
        app:defaultvalue="true"
        app:key="@string/key_app_lock"
        app:summary="@string/summary_app_lock"
        app:title="@string/title_app_lock" />

目标是在尚未设置任何值的情况下从myPreference.xml获取默认值。它适用于字符串和整数,但如何使用布尔值?有解决方法吗?有时默认值可能是字符串,int或boolean。我现在的问题是,SharedPreferences.getBoolean不接受空值作为参数。我真的不想做的是在使用get时定义默认值。因为它已经在preference.xml中声明了。

likexiaoshuang 回答:获取在preferences.xml中定义的默认值

我不确定您要问什么。但是,如果您使用SharedPreferences上的contains方法检查首选项是否存在,则可以确定是否要在辅助方法内部返回null。

https://developer.android.com/reference/android/content/SharedPreferences.html#contains(java.lang.String)

本文链接:https://www.f2er.com/3028877.html

大家都在问