私のアプリケーションには、さまざまな顧客向けにいくつかのテーマがあり、android:defaultValue
テーマごとに異なるテーマを設定したいと考えています。私の場合、これは別のデフォルト ホストを設定するためです。
属性とテーマを使用して設定しようとしましたが、達成できませんでした。
attrs.xml で属性を定義します。
<attr name="settings_host" format="reference" />
res/values の settings.xml ファイルでのさまざまなデフォルト値の定義:
<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"
残念ながら、これは機能していません。デフォルト値は常に空です。私は何か間違ったことをしましたか?私の目標を達成する別の方法はありますか?
ドキュメントにはそれが可能であると書かれています :
android:defaultValue
...
「@[+][package:]type:name」の形式の別のリソースへの参照、または「?[package:][type:]name」の形式のテーマ属性への参照の場合があります。