我的应用程序中有几个主题适用于不同的客户,并且想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”。