为什么getDefaultSharedPreferences(context).getString(key,value)返回本地化字符串?

时间:2012-10-23 17:56:43

标签: android android-preferences

我正在使用Android中的应用程序,我有一个列表首选项。问题是,当我使用PreferenceManager.getDefaultSharedPreferences(context).getString(key, value)获取值时,它返回本地化字符串而不是条目值,这正是我所期待的。在之前的版本中,它正在运行。那是正确的行为吗?在那种情况下,我该如何获得入场价值?这里有一些代码可供解释。

提前致谢。

的preferences.xml:

<ListPreference
android:id="@+id/protocol"
android:key="protocol"
android:title="@string/protocol"
android:dialogTitle="@string/change_protocol"
android:defaultValue="default"
android:entries="@array/protocol_entries"
android:entryValues="@array/protocol_entry_values" />

arrays.xml

<string-array
    name="protocol_entry_values">
    <item>default</item>
    <item>protocol_1</item>
    <item>protocol_2</item>
    <item></item>
</string-array>
<string-array
    name="protocol_entries">
    <item>@string/label_default_protocol</item>
    <item>@string/label_protocol_1</item>
    <item>@string/label_protocol_2</item>
    <item>@string/label_other</item>
</string-array>

的strings.xml

<string name="label_default_protocol">Default protocol</string>
<string name="label_protocol_1">First protocol</string>
<string name="label_protocol_2">Second Protocol</string>
<string name="label_other">Other</string>

1 个答案:

答案 0 :(得分:0)

听起来您有本地化形式的<string-array name="protocol_entry_values">数据的不同版本。您应该只有一个值的定义。 protocol_entries应该已本地化。