Я пытаюсь создать экран настроек с динамическим списком записей, и при нажатии на каждую из них появляется другой экран настроек. В качестве примера представьте себе список учетных записей электронной почты, и для каждой из них доступны настройки учетной записи.
Хотя я могу создать нужное вложение, используя только PreferenceScreens
, его нелегко масштабировать до нескольких записи без создания структуры вложенных предпочтений в коде для каждого из них.
Я вижу несколько различных вариантов во всем пользовательском интерфейсе Android.
Есть ли рекомендуемый способ создания такой структуры, как эта?
Возможные варианты:
] Отдельные независимые виды деятельности
Работает, но, на мой взгляд, беспорядочно
Вложенные, созданные кодом PreferenceScreens
Боль в заднице для обслуживания, и это означает, что предпочтения больше не хранятся в виде XML-фрагментов
Вложенные, раздутые PreferenceScreens
Я не могу найти способ развернуть другой XML-файл в поддерево
Один «вспомогательный» PreferenceScreen, который отображается с помощью setPreferenceScreen () для каждого из них
Я не могу найти способ скрыть «шаблон» PreferenceScreen, и он нарушает навигацию.
Пример XML:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/prefs_title">
<EditTextPreference android:key="add_console"
android:title="@string/prefs_add_console"></EditTextPreference>
<PreferenceCategory android:title="@string/prefs_consoles_title"
android:key="list">
<PreferenceScreen android:summary="http://cctv.icode.co.uk/"
android:title="iCode Console">
</PreferenceScreen>
<PreferenceScreen android:summary="http://test.icode.co.uk/"
android:title="Test Console">
</PreferenceScreen>
</PreferenceCategory>
<PreferenceScreen android:title="Console (template)"
android:key="console">
<EditTextPreference android:title="@string/prefs_console_host"
android:summary="@string/prefs_not_set" android:key="host"></EditTextPreference>
<CheckBoxPreference android:title="@string/prefs_console_auth"
android:summary="@string/prefs_console_auth_summary" android:key="auth"></CheckBoxPreference>
<EditTextPreference android:shouldDisableView="true"
android:title="@string/prefs_console_authuser" android:key="authuser"
android:dependency="auth" android:summary="@string/prefs_not_set"></EditTextPreference>
<EditTextPreference android:title="@string/prefs_console_authpass"
android:key="authpass" android:dependency="auth" android:summary="@string/prefs_not_set"></EditTextPreference>
<CheckBoxPreference android:title="@string/prefs_console_pair"
android:summary="@string/prefs_console_pair_summary" android:key="pair"></CheckBoxPreference>
</PreferenceScreen>
</PreferenceScreen>
Я хочу, чтобы записи в списке
были динамическими и отображали console
предпочтения для каждого.
Все остальные идеи приветствуются.
Спасибо