我正在努力研究如果我可以使用资源文件,在开发我的Android应用程序时,使用字符串值作为键来保存数字列表.例如
数字("英国")= 999数字("美国")= 911
正如我所说,理想情况下,这将是资源文件而不是Java类,因为它更易于维护
您想在资源中定义字典.没有办法直接这样做.但是,您可以将键和值定义为数组,然后构建字典.
在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>
Run Code Online (Sandbox Code Playgroud)
然后在你的代码中你有这个实用工具方法,
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;
}
Run Code Online (Sandbox Code Playgroud)
当您需要代码中的字典时,请执行此操作,
Map<String,Integer> emergencyNumbers = getDict(R.array.emergency_keys, R.array.emergency_values);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6233 次 |
| 最近记录: |