Я пытаюсь создать экран настроек с динамическим списком записей, и при нажатии на каждую из них у меня появляется другой экран настроек.В качестве примера рассмотрим список почтовых учетных записей, для каждой из которых доступны настройки их учетных записей.
Хотя я могу создать нужную вложенность, используя только 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>
Я хочу, чтобы записи в list
были динамическими и отображалиconsole
предпочтений под каждым.
Все остальные идеи приветствуются.
Спасибо