我一直在努力在我的应用程序中实现 PreferenceFragment。我的目标是让首选项视图替换我的 main_activity 片段容器,这样我就可以保留相同的导航抽屉、操作栏等。
我创建了一个 Preference Fragment 类,如下所示:
public class MadlibsSettings extends PreferenceFragment {
android.support.v7.app.ActionBar actionBar;
CheckBoxPreference themeSwitch;
ListPreference fontSize;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = super.onCreateView(inflater, container, savedInstanceState);
view.setBackgroundColor(getResources().getColor(android.R.color.white));
actionBar = (android.support.v7.app.ActionBar) ((MainActivity)getActivity()).getSupportActionBar();
actionBar.setTitle("Settings");
addPreferencesFromResource(R.layout.madlibs_settings);
//fontSize = (ListPreference) findPreference("list");
return view;
}
}
我在 R.layout.madlibs_settings 中的偏好是:
<PreferenceCategory android:title="PreferenceCategory A" >
<CheckBoxPreference
android:id="@+id/checkbox1"
android:defaultValue="false"
android:key="checkbox1"
android:summary="Switches App Layout to Dark Theme"
android:title="Darker Theme" />
</PreferenceCategory>
<PreferenceCategory android:title="PreferenceCategory B" >
<ListPreference
android:id="@+id/ListPreference"
android:defaultValue="8"
android:entries="@array/list"
android:entryValues="@array/LValues"
android:key="list"
android:summary="Choose Font Size"
android:title="Font Size" />
</PreferenceCategory>
</PreferenceScreen>
我不太确定在我的主要活动中要做什么来增加偏好,然后使用 haredpreferences 从我的偏好中访问数据。任何帮助都会很棒,我绝对是一个有碎片的菜鸟。