2012-04-13 3 views
0

Я пытаюсь работать, если я могу использовать файл ресурсов при разработке моего приложения Android для хранения списка чисел с использованием строкового значения в качестве ключа. НапримерAndroid Список значений с ключом

номера («UK») = 999 числа («США») = 911

Как я уже сказал, это было бы в идеале быть в файле ресурсов, а не класс Java, как это становится более сопровождаемым

+1

использовать .properties, загрузить его с ResourceBundle – DGomez

ответ

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); 
Смежные вопросы