Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带键的Android值列表_Java_Android - Fatal编程技术网

Java 带键的Android值列表

Java 带键的Android值列表,java,android,Java,Android,我在开发我的android应用程序时,试图弄清楚我是否可以使用一个资源文件,以字符串值作为键来保存一个数字列表。比如说 numbersUK=999 numbersUS=911 正如我所说的,这最好是在资源文件中,而不是在Java类中,因为它更易于维护。没有办法直接做到这一点。但是,您可以将键和值定义为数组,然后构建字典 在res/values/arrays.xml中 <string-array name="emergency_keys"> <item>UK<

我在开发我的android应用程序时,试图弄清楚我是否可以使用一个资源文件,以字符串值作为键来保存一个数字列表。比如说

numbersUK=999 numbersUS=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>
然后在你的代码中有这个实用方法

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

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

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

使用.properties,使用ResourceBundle加载它使用.properties,使用ResourceBundle加载它