SharedPreferences总是空的

时间:2015-09-08 10:41:02

标签: java android android-fragments android-preferences

我有一个使用片段的应用。其中一个是PreferenceFragment,它们都在“片段”包中。

我加载设置片段,可以查看选项,更改值,并保存所有内容。

fragmentPrefsCurrentView片段

public class fragmentPrefsCurrentView extends PreferenceFragment {

 @Override
    public void onCreate(final Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.prefs);

        //test
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
        boolean b = prefs.getBoolean("applicationOptionOne", false);

    }
}

b布尔测试返回正确的值。

R.xml.prefs XML文件:

<PreferenceCategory
    android:title="@string/sectionname">

    <SwitchPreference android:title="Bases"
        android:defaultValue="true"
        android:key="applicationOptionOne" />

</PreferenceCategory>

现在,在另一个类中,它也是一个片段,在同一个包/文件夹中,我试图访问这些相同的值,但返回的值始终是一个空映射。

fragmentMap片段

public class fragmentMap extends Fragment {



   @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {

        prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
        boolean b = prefs.getBoolean("applicationOptionOne", false);

        super.onActivityCreated(savedInstanceState);
    }
}

我想也许这与错误的context或范围有关,或者在我尝试在第二个片段中访问它们时,可能没有加载首选项?

1)加载的首选项片段 - prefs包含正确的mMap 2)fragmentMap加载 - prefs包含空mMap

有什么想法?欢呼声。

0 个答案:

没有答案