2012-04-13 43 views
0

我想解决如果我可以使用资源文件,而开发我的android应用程序,以保存使用字符串值作为关键字的数字列表。例如Android键值列表

号(“UK”)= 999 号(“US”)= 911

正如我所说的,这将理想中的资源文件,而不是一个Java类,因为它是更容易维护

+1

使用.properties,加载一个ResourceBundle – DGomez 2012-04-13 18:24:56

回答

6

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

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);