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

标签 java android sharedpreferences getter

我想使用 AndroidPreferenceManager 从 myPreferences.xml 检索默认值。我让它可以使用 int 和字符串,但是如何从 boolean 值加载默认值?

来自 helperMethods 的 fragment :

    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);
    }

来 self 的首选项的 fragment :

        <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 获取默认值。它适用于字符串和整数,但如何处理 boolean 值呢?有解决方法吗?有时默认值可能是字符串、整数或 boolean 值。我现在的问题是,SharedPreferences.getBoolean 不接受空值作为参数。我真正不想做的是在使用 get 时定义默认值。因为它已经在preference.xml中声明了。

最佳答案

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

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

关于java - 获取preferences.xml中定义的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59051823/

相关文章:

java - Swing 数据绑定(bind)框架

android - 谷歌云消息 : Can you send to a select group of users?

android - 如何在 sharedpreferences 中保存一些值并在下一个 Activity 中获取它

java - 第一次尝试尝试共同的偏好

java - 在 Java 1.5 中使用 EclipseLink MOXy

java - 应该检索公共(public)FTPClient的文件从远程服务器删除文件

android - Activity 恢复时更新 RecyclerView?

java - Sprite 只是可见并没有完全消失

java - SharedPreferences 结构和 ovoid 用户清除此

Java 应用程序作为系统服务