0

私のアプリケーションには、さまざまな顧客向けにいくつかのテーマがあり、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」の形式のテーマ属性への参照の場合があります。

4

1 に答える 1

0

私の間違いxml-v14です。新しい属性で編集するのを忘れたという点で、2 番目の設定ファイルがありました。私のテスト デバイスのバージョンは、この 2 番目の設定を使用するのに十分新しいため、既定値は空のままでした。

質問に記載されている解決策は機能します。

于 2013-11-07T10:32:51.570 に答える