我的应用程序中有几个主题针对不同的客户,并希望为每个主题设置不同的android:defaultValue
。在我的例子中,这是为了设置不同的默认主机。
我尝试使用attibutes和Themes设置它但我无法实现它。
在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>
首选项中的Seth 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”形式的主题属性的引用的
答案 0 :(得分:0)
我错了,我在xml-v14
中有第二个首选项文件,我忘记使用新属性进行编辑。由于我的测试设备版本足够新以使用此第二个首选项,因此默认值保持为空。
问题中描述的解决方案有效。