如何在android上的string.xml中读取特定的键值?

时间:2011-10-18 11:53:44

标签: android listview localization

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>

3 个答案:

答案 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来获取密钥的价值。