Android键值列表

时间:2012-04-13 18:19:54

标签: java android

我正在尝试解决,如果我可以使用资源文件,在开发我的Android应用程序时,使用字符串值作为键来保存数字列表。例如

数字(“英国”)= 999 数字(“美国”)= 911

正如我所说,理想情况下,这将是资源文件而不是Java类,因为它更易于维护

1 个答案:

答案 0 :(得分:7)

您想要在资源中定义字典。没有办法直接这样做。但是,您可以将键和值定义为数组,然后构建字典。

res/values/arrays.xml中,有类似的内容,

<string-array name="emergency_keys">
    <item>UK</item>
    <item>US</item>
            ....
</string-array>
<integer-array name="emergency_values">
    <item>999</item>
    <item>911</item>
            ...
</integer-array>

然后在你的代码中你有这个实用工具方法,

Map<String,Integer> getDict(int keyId, int valId) {
  String[] keys = getResources().getStringArray(keyId);
  int[] values = getResources().getIntArray(valid); 

  Map<String,Integer> dict = new HashMap<String,Integer>();
  for (int i = 0, l = keys.length; i < l; i++) {
    dict.put(keys[i], vals[i]);
  }

  return dict;
}

当您需要代码中的字典时,请执行此操作,

Map<String,Integer> emergencyNumbers = getDict(R.array.emergency_keys, R.array.emergency_values);