Intereting Posts
Преобразование ShaderToy в фрагментарный шейдер Запрос предложения поставщика контента для Android Android M – проверить разрешение времени выполнения – как определить, проверен ли пользователь «Никогда не спрашивать снова»? Когда рабочий поток работает, пользовательский интерфейс становится изменчивым ListViews с несколькими макетами элементов Горизонтальный прокручиваемый текст в Android OnConfigurationChanged не вызывается, как только setRequestedConfiguration используется Получить экземпляр текущей активности? Как скрыть элементы управления в VideoView в Android? ArrayIndexOutOfBoundsException при отключении Snackbar / ViewDragHelper Android.database.CursorIndexOutOfBoundsException: запрошенный индекс -1 с размером 2 Ошибка отправки Bundle с PendingIntent в широковещательный приемник, потерянные данные Использование памяти Android AdMob COM-порт Bluetooth Bluetooth 0% покрытия кода на эспрессо-тестах с помощью JaCoCo и Gradle

Как загрузить одинаковое предпочтение экрана в деталях PreferenceFragment

Я пытаюсь сделать что-то вроде настроек настроек в Android для планшета.

Когда я нажимаю «Дополнительно», экран настроек «Беспроводные сети» отображается на правом фрагменте, чем если бы я касался «VPN», в том же фрагменте открывается экран настроек «VPN».

Как я могу это сделать ?

Это мое предпочтение xml

<PreferenceScreen android:title="Title A"> <PreferenceScreen android:title="TITLE B"> <PreferenceCategory android:title="category"> <ListPreference android:key="list" android:title="list" android:entries="@array/list_vals" android:entryValues="@array/list_vals1" android:defaultValue="1" android:dialogTitle="list title" android:negativeButtonText="cancel" /> </PreferenceCategory> </PreferenceScreen> </PreferenceScreen> 

Проблема в том, что я не хочу, чтобы экран вложенных настроек с заголовком B был загружен на весь экран. Я просто хочу, чтобы его загружали вместо правильного фрагмента …

ПРИМЕЧАНИЕ. Я использовал эту документацию для создания моего примера до сих пор. Http://developer.android.com/guide/topics/ui/settings.html#PreferenceHeaders

Введите описание изображения здесь

Введите описание изображения здесь

РЕДАКТИРОВАТЬ*

Это моя деятельность

 public class SettingsActivity extends PreferenceActivity { @Override public void onBuildHeaders(List<Header> target) { loadHeadersFromResource(R.xml.preference_headers, target); } } 

У меня нет макета, так как я могу узнать, что такое мой идентификатор основного фрагмента и что такое идентификатор фрагмента детали?

Solutions Collecting From Web of "Как загрузить одинаковое предпочтение экрана в деталях PreferenceFragment"

Вкратце, определите PreferenceActivity и предоставьте файл заголовков для основных категорий:

Class SettingsActivity :

 public class SettingsActivity extends PreferenceActivity { @Override public void onBuildHeaders(List<Header> target) { super.onBuildHeaders(target); loadHeadersFromResource(R.xml.headers,target); } } 

Файл /res/xml/headers.xml :

 <?xml version="1.0" encoding="utf-8"?> <preference-headers xmlns:android="http://schemas.android.com/apk/res/android"> <header android:title="Preference Header" android:fragment="com.example.SettingsDemo.PrefFragment"/> </preference-headers> 

Создайте PreferenceFragment как указано в android:fragment выше, укажите его собственный файл настроек:

Класс PrefFragment :

 public class PrefFragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.prefs); } } 

Файл /res/xml/prefs.xml :

 <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="Preferences"> <SwitchPreference android:title="Preference" /> <PreferenceScreen android:title="Sub Preferences" android:fragment="com.example.SettingsDemo.SubPrefFragment"/> </PreferenceCategory> </PreferenceScreen> 

Создайте дочерний элемент PreferenceFragment как указано в android:fragment выше, также создайте собственный файл настроек:

Класс SubPrefFragment :

 public class SubPrefFragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.sub_prefs); } } 

Файл /res/xml/sub_prefs.xml :

 <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="Sub Preferences"> <CheckBoxPreference android:title="Sub Preference"/> </PreferenceCategory> </PreferenceScreen> 

Вот и все. PreferenceActivity автоматически покажет все дочерние фрагменты.

Результаты:

Основной PreferenceFragment : Введите описание изображения здесь

Заменяется sub PreferenceFragment под тем же заголовком: Введите описание изображения здесь