相关疑难解决方法(0)

getDefaultSharedPreferences和getSharedPreferences之间的区别

Android getDefaultSharedPreferences和getSharedPreferencesAndroid有什么区别?有人可以解释一下吗?

android android-preferences sharedpreferences

217
推荐指数
2
解决办法
8万
查看次数

getPreferences始终返回默认值

我已经设置了PreferenceFragment两个布尔首选项.在Fragment当应用程序被关闭并重新打开,做工精细和设置存储.但是,在尝试阅读这些值时,我遇到了问题; 仅返回默认值.如果我调试getBoolean方法,SharedPreferences我看到本地HashMap的大小为0,因此返回默认值,如下所示:

public boolean getBoolean(String key, boolean defValue) {
    synchronized (this) {
        awaitLoadedLocked();
        Boolean v = (Boolean)mMap.get(key); // <-- mMap is of size 0: return defValue
        return v != null ? v : defValue;
    }
}
Run Code Online (Sandbox Code Playgroud)

我发现这很奇怪,因为偏好值显然是存储并正确加载到PreferenceFragment.我错过了什么?

在Activity.onCreate():

PreferenceManager.setDefaultValues(this, R.xml.preferences, false);
Run Code Online (Sandbox Code Playgroud)

RES/XML /的preferences.xml:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory
        android:key="mm_preferences_category_recipe_preferences"
        android:title="@string/mm_preferences_category_recipe_preferences_title" >
        <CheckBoxPreference
            android:key="@string/mm_preferences_numbers_as_fractions_key"
            android:title="@string/mm_preferences_numbers_as_fractions_title"
            android:summary="@string/mm_preferences_numbers_as_fractions_summary"
            android:defaultValue="true" />
        <CheckBoxPreference
            android:key="@string/mm_preferences_comma_as_decimal_separator_key"
            android:title="@string/mm_preferences_comma_as_decimal_separator_title"
            android:summary="@string/mm_preferences_comma_as_decimal_separator_summary"
            android:defaultValue="true" />
    </PreferenceCategory>
</PreferenceScreen> …
Run Code Online (Sandbox Code Playgroud)

android sharedpreferences

3
推荐指数
1
解决办法
2445
查看次数