Я создаю PreferenceActivity для приложения для планшета (Android 3.0+) с использованием PreferenceFragments. Цель состоит в том, чтобы иметь двухпанельный макет, отображающий настройки так же, как отображаются системные настройки.
Проблема, с которой я столкнулся, заключается в том, что я не могу, по всей видимости, получить заголовок текущего выбранного PreferenceFragment для отображения над ListView PreferenceFragment на правой панели. Вот пример того, что я пытаюсь сделать (пытаясь отобразить содержимое в красном поле.)
Вот мой файл preference_headers.xml:
<?xml version="1.0" encoding="utf-8"?>
<preference-headers xmlns:android="http://schemas.android.com/apk/res/android">
<header android:fragment="com.mycompany.mobile.preferences.MyPreferencesActivityHC$GeneralSettingsPreferenceFragment"
android:title="General Settings">
</header>
<header android:fragment="com.mycompany.mobile.preferences.MyPreferencesActivityHC$PhotoOptionsPreferenceFragment"
android:title="Photo Settings"
android:summary="Testing photo settings">
</header>
</preference-headers>
и вот код для MyPreferencesActivity.java
package com.mycompany.mobile.preferences;
import java.util.List;
import android.content.Intent;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.PreferenceActivity;
import android.preference.PreferenceFragment;
import com.mycompany.mobile.R;
public class MyPreferencesActivityHC extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle(R.string.taskCaptionSettings);
}
@Override
public void onBuildHeaders(List<Header> target) {
loadHeadersFromResource(R.xml.preference_headers, target);
}
public static class GeneralSettingsPreferenceFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.general_settings_preferences);
}
}
public static class PhotoOptionsPreferenceFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.photo_options_preferences);
}
}
}