2011-06-11 50 views
2

我對Java和Android編程都很陌生,而且學習速度相當快,但似乎無法找到任何經過一個小時的谷歌搜索後回答這個問題...如何使用getString()獲得「標題」而不是首選項的「值」

我已經使用一個使用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); 

我明白如何從drawruleValues與sharedPrefs.getString("draw_rule", "null")得到正確的值。我的問題是,爲了顯示目的,我想顯示該項目而不是drawruleValues(例如"Draw Setting: Draw 3")。

誰能告訴我如何做到這一點?

回答

1

選項#1:不要使用單獨的<string-array>資源。在您的首選項定義中,對兩個陣列使用drawrule

選項#2:(一Resources對象上經由getStringArray())遍歷的drawruleValues內容以找到值的索引,然後用它來獲得從drawrule陣列(再次「標題」,經由getStringArray()上的Resources對象)。

+0

我認爲選項1聽起來恰到好處。隨着我學習更多的java和android特定的代碼,我可能稍後可能會想出其他方法。謝謝一堆! – 2011-06-12 02:40:21

相關問題