Могу ли я использовать один элемент settings.xml <PreferenceScreen>в разных местах с динамически генерируемыми ключами? - PullRequest
0 голосов
/ 07 марта 2012

Прежде всего, я использую 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 голос
/ 07 марта 2012

Да, вы можете. Просто загружайте PreferenceScreen везде, где вам нужно, надуйте элементы Preference и динамически меняйте их ключи с помощью метода Preference.setKey (). Это должно работать.

...