簡體   English   中英

如何使用 getString() 獲取首選項的“標題”而不是“值”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM