对于我的PreferenceActivity,我使用的是典型的preferences.xml文件。
ListPreference的entryValues不是要本地化的东西。是否可以使用某种数组文字直接定义entryValues属性?
我在下面的第一次尝试不起作用,“pull,push”被认为是一个字符串:
<ListPreference
android:key="server_reception_mode"
android:title="@string/title_server_reception_mode_preference"
android:entries="@array/entries_server_reception_mode_preference"
android:entryValues="pull, push" />
答案 0 :(得分:3)
您可以声明<string-array>
字符串数组。例如:
<string-array name="entry_values">
<item>pull</item>
<item>push</item>
</string-array>
然后您可以在XML中使用它:
<ListPreference
android:key="server_reception_mode"
android:title="@string/title_server_reception_mode_preference"
android:entries="@array/entries_server_reception_mode_preference"
android:entryValues="@array/entry_values" />
如果你只是在避免翻译,你可以使用Android sources中使用的约定:它们有名为values/donottranslate.xml
,values/donottranslate-names.xml
等的资源文件。
答案 1 :(得分:1)
答案 2 :(得分:0)
您需要在资源中创建一个数组。你不能像你希望的那样直接申报。
对于那些类型的数组,我通常会创建第二个XML文件,其中包含所有不需要转换的条目(如array-notranslate.xml)。这样,如果您将xml文件交给某人进行翻译,他们就不必处理它。