Есть ли способ установить настройки defaultValue для каждой темы?

В моем приложении есть несколько тем для разных клиентов, и я хотел бы установить разные android:defaultValue для каждой темы. В моем случае это делается для того, чтобы установить другой хост по умолчанию.

Я пытался установить его с помощью атрибутов и тем, но не смог этого добиться.

Определите атрибут в attrs.xml:

  <attr name="settings_host" format="reference" />

Определение различных значений по умолчанию в файле settings.xml в res/values:

  <string name="settings_host_1">my.host1.net</string>
  <string name="settings_host_2">my.host2.net</string>

Выберите значение по умолчанию в файле themes.xml:

  <style name="MyTheme" parent="@style/ApplicationTheme">
    <item name="settings_host">@string/settings_host_1</item>

Установить defaultValue в настройках:

  <EditTextPreference
      android:name="Host"
      android:defaultValue="@attr/settings_host"
      android:key="@string/settings_tag_mw_host"
      android:summary="@string/act_settings_host_summary"
      android:title="@string/act_settings_host" />

Я также пробовал:

      android:defaultValue="?settings_host"

К сожалению, это не работает, мое значение по умолчанию всегда пусто. Я сделал что-то неправильно? Есть ли другой способ достичь моей цели?

В документации сказано, что это возможно: Preference

android:defaultValue

...

Может быть ссылкой на другой ресурс в форме "@[+][package:]type:name" или на атрибут темы в форме "?[package:][type:]name".


person L. G.    schedule 07.11.2013    source источник


Ответы (1)


Я ошибаюсь, у меня был второй файл настроек в xml-v14, который я забыл отредактировать с новым атрибутом. Поскольку версия моего тестового устройства достаточно новая, чтобы использовать этот второй параметр, значение по умолчанию осталось пустым.

Решение, описанное в вопросе, работает.

person L. G.    schedule 07.11.2013