string.xml
包含许多有价值的键。我想基于密钥获得特定的价值。
例如,string.xml
包含key1,key2包含key100。我将这些密钥显示在ListView
中。如果用户选择key50,则表示我想在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 :(得分: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();
}
});
答案 1 :(得分:2)
如果您拥有<string name="key">string value</string>
资源,那么唯一的方法是通过key
访问它们:
String value = context.getString(R.string.key);
顺便说一句,如果您需要将一些任意数据存储到Views
(ListView中的数据)中,请使用view.setTag(object)
和view.getTag()
。
答案 2 :(得分:0)
我建议您使用XPath来获取密钥的价值。