java - 如何使用 getString() 获取偏好的 "title"而不是 "value"

标签 java android arrays eclipse sdk

我是 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/

相关文章:

java - SharedPreferences逻辑错误

java - 应用程序激活时重新加载数据

c - 在 C 中打印数组时出错

java - 使用 Guava RateLimiter 类限制方法调用

Java 文件读取器 : How to assign every line in the text file to a variable

java - Spring-data-mongodb @DBRef 导致无限递归?我不明白为什么

android - 靠近 "WHERE": syntax error - SQLite

android - 覆盖 SWIG 类型转换

javascript - 从数组中删除最后添加的值而不改变它

c++ - 指向类对象和初始化成员值的指针数组