В моем приложении есть несколько тем для разных клиентов, и я хотел бы установить разные 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". эм>