2011-10-18 25 views
1

string.xml包含很多帶鍵值的鍵。我想根據關鍵獲得特定的價值。如何在android的string.xml中讀取特定的鍵值?

例如,string.xml包含key1,key2直到key100。我將這些密鑰顯示到ListView。如果用戶選擇密鑰50意味着我想在TextView中顯示相應的值。如何實現這一目標?

樣品string.xml文件,

<?xml version="1.0" encoding="utf-8" standalone="no"?> 
<resources> 
    <string name="key1">value 1</string> 
    <string name="key2"> value 2 </string> 
    ... 
    ... 
    <string name="key100"> value 100 </string> 
</resources> 
+0

你能告訴你的String.xml文件? – Venky

+0

@ venky,看看我的更新。 – bharath

+1

你的ListView到底是什麼?諸如「key1」,「key2」等文本字符串?在這種情況下,您可以通過名稱獲取字符串資源的值 - 首先通過調用「android.content.res.Resources」類(defType = string,defPackage =您的包名稱)中的「getIdentifier」方法來獲取id。 – Jens

回答

4

您應該將鑰匙保存爲一個字符串數組資源這樣

<string-array name="my_keys"> 
    <item>Key 1</item> 
    <item>Key 2</item> 
    <item>Key 3</item> 
    <item>Key 4</item> 
    <item>Key 5</item> 
    <item>Key 6</item> 
</string-array> 

用下面的代碼填充listView

String[] myKeys = getResources().getStringArray(R.array.my_keys); 
ListView mListView = (ListView)findViewById(R.id.yourListView); 
mListView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, myKeys)); 

檢索單擊項目,並把該值放入TextView

TextView myTextView = (TextView)findViewById(R.id.yourTextView); 
    mListView.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     myTextView = ((TextView) view).getText(); 
    } 
    }); 
+0

這應該是獲得'ListView'中選定的值。但是我想從基於這個選定值的'string.xml'中獲得值。 – bharath

+0

string.xml包含您在其中定義的字符串數組和其他資源。它取決於你根據點擊的項目檢索這些變量。任何時候你想讀取資源的值,只需使用'getResources()' –

0

我會建議使用XPath讓你的鑰匙值。

+0

爲什麼不簡單地使用context.getResources.getString()? –

2

如果你有一個<string name="key">string value</string>資源,那麼唯一的辦法就是通過key訪問它們:順便說一下

String value = context.getString(R.string.key); 

,如果你需要一些任意的數據存儲到您的Views(那些你的ListView裏面),使用view.setTag(object)view.getTag()

+0

是的。我知道。但我需要根據用戶選擇獲得特定的關鍵值。 – bharath

+0

我更新了答案。基本上你可以在View中存儲/檢索任意對象。 –

相關問題