这实际上很容易。在根标题打开的 XML 文件中,我添加了一个 Preference 项并将 android:fragment 设置为我的 PreferencesFragment 类。为了阐明我的整个系统是如何工作的,我有:
public class MyPreferencesActivity extends PreferenceActivity {
@Override
public void onBuildHeaders(List<Header> targer) {
loadHeadersFromResource(R.xml.preference_headers, target);
}
preference_headers 然后看起来像这样:
<preference-headers xmlns:android="http://schemas.android.com/apk/res/android" >
<header android:fragment="com.my.androidapp.MyPreferencesFragment" title="General Category >
<extra android:name="resource" android:value="preferences_general" />
</header>
<header... one per category, different titles and extra values for each.
</preference-headers>
MyPreferenceFragment 看起来像这样:
public class MyPreferenceFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String name = getArguments().getString("resource");
int res = getActivity().getResources().getIdentifier(name, "xml", getActivity().getPackageName());
addPreferencesFromResource(res);
最后,我的首选项文件如下所示:
<PreferenceScreen blah...>
<Preference android:fragment="com.my.androidapp.MyPreferenceFragment" android:title="Drill Down!">
<extra android:name="resource" android:value="preferences_subgeneral" />
</Preference>
<Preference... whatever I want... I can use ordinary preferences or any number of items that can be selected to drill down further still.
</PreferenceScreen>
希望这可以帮助其他人,尤其是其他有大量偏好的人。