我有一个使用片段的应用。其中一个是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
有什么想法?欢呼声。