[英]How to get the “title” instead of the “value” of a preference with getString()
我是 Java 和 Android 编程的新手,我学得很快,但经过一个小时的谷歌搜索,我似乎找不到任何答案......
我已经使用使用 ListPreference 条目的首选项设置了我的 android 应用程序。xml。 指2个字符串arrays,一个为列表显示,另一个为实际值:
<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
的内容(通过Resources
对象上的getStringArray()
)以找到该值的索引,然后使用它从drawrule
数组中获取“标题”(再次,通过getStringArray()
上Resources
对象)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.