我是 Java 和 Android 编程的新手,我学得相当快,但经过一个小时的谷歌搜索后,我似乎找不到任何答案......
我已经使用一个使用 ListPreference 条目的 preferences.xml 设置了我的 android 应用程序。它引用了2个字符串数组,一个用于列表显示,另一个用于实际值:
<ListPreference
android:title="Draw Rule"
android:summary="Choose between Draw 1 and Draw 3"
android:key="draw_rule"
android:defaultValue="draw3"
android:entries="@array/drawrule"
android:entryValues="@array/drawruleValues" />
我的 arrays.xml 看起来像这样:
<string-array name="drawrule">
<item name="draw1">Draw 1</item>
<item name="draw3">Draw 3</item>
</string-array>
<string-array name="drawruleValues">
<item name="draw1">draw1</item>
<item name="draw3">draw3</item>
</string-array>
为了获得首选项,我首先使用 getDefaultSharedPreferences :
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
我了解如何使用 sharedPrefs.getString("draw_rule", "null")
从 drawruleValues 获取正确的值。我的问题是,出于显示目的,我想显示来自 drawrule 的项目,而不是 drawruleValues(例如 "Draw Setting: Draw 3"
)。
谁能告诉我怎么做?
最佳答案
选项 #1:不要使用单独的 <string-array>
资源。使用 drawrule
对于您的首选项定义中的两个数组。
选项 #2:遍历 drawruleValues
的内容(通过 getStringArray()
在 Resources
对象上)找到值的索引,然后使用它从 drawrule
中获取“标题”数组(同样,通过 getStringArray()
对象上的 Resources
)。
关于java - 如何使用 getString() 获取偏好的 "title"而不是 "value",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6313765/