これは実際にはかなり簡単でした。ルートヘッダーが開く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>
これが他の人々、特に大量の好みを持つ他の人々に役立つことを願っています。