/ / Чи можу я використовувати один елемент settings.xml <PreferenceScreen> в різних місцях з динамічно згенерованими ключами? - андроїд, андроїд-уподобання, андроїд-2.3-пряники

Чи можу я використовувати різні елементи settings.xml <PreferenceScreen> в різних місцях з динамічно генерованими ключами? - Android, android-preferences, android-2.3-пряники

Перш за все, я використовую API рівня 10, тому мені потрібні рішення, які використовують старіші, застарілі API для налаштувань.

Я маю <PreferenceScreen> визначені в а settings.xml наступним чином (переваг є більше, але для ілюстрації я включив лише одне:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<CheckBoxPreference
android:key="@string/key_pref_match_locality"
android:defaultValue="false"
android:title="@string/title_pref_match_locality"
android:summary="@string/summary_pref_match_locality" />
</PreferenceScreen>

Тепер спосіб, яким я хочу структурувати свою програму, - це використовувати цей екран налаштувань у кількох місцях. Як? Уявіть собі такий сценарій:

  1. У мене є список людей, віднесених до різних груп. Візьмемо, наприклад, "Друзі", "Сім'я", "Колеги".
  2. Я хочу, щоб асоціювався набір налаштуваньз групою "за замовчуванням" та з кожною окремою групою. В цілому для цього прикладу у мене будуть 4 набори переваг - Типовий, Друзі, Сімейні, Колеги - які я згодом завантажуватиму на сервер.

В ідеалі я хочу, щоб у ключі преференції було вказано, який саме тип переваги. Отже, для налаштування групи за замовчуванням я хочу, щоб ключ цього параметра був "DEFAULT_pref_match_locality", а для групи "Друзі" так і має бути "GROUP_Family_pref_match_locality".

Чи є спосіб я використати сингл <PreferenceScreen> визначено в settings.xml і динамічно створювати кілька екземплярів екрана, в яких усі використовують різні клавіші?

Відповіді:

1 для відповіді № 1

Так, ти можеш. Просто завантажте PreferenceScreen скрізь, де потрібно, роздути Preference елементів і динамічно змінюють свої ключі за допомогою методу Preference.setKey (). Це має спрацювати.