Получить целочисленный массив из ресурса xml в программе Android - PullRequest
21 голосов
/ 14 января 2010

Просто халтура,

У меня есть ресурс xml в res / values ​​/ inteers.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
     <integer-array name="UserBases">
          <item>2</item>
          <item>8</item>
          <item>10</item>
          <item>16</item>
     </integer-array>
</resources>

и я попробовал несколько способов получить к нему доступ:

int[] bases = R.array.UserBases;

это просто возвращает, и int ссылается на UserBases, а не на сам массив

int[] bases = Resources.getSystem().getIntArray(R.array.UserBases);

и это возвращает мне исключение, говоря мне, что ссылка на int R.array.UserBases ничего не указывает

Какой лучший способ получить доступ к этому массиву, поместить его в красивый базовый тип int [], а затем, возможно, отправить любые изменения обратно в ресурс xml.

Я проверил документацию по Android, но ничего ужасного не нашел.

1 Ответ

62 голосов
/ 14 января 2010

Вам необходимо использовать ресурсы для получения массива int; однако вы используете системные ресурсы, которые включают только стандартные ресурсы Android (например, доступные через android.R.array.*). Чтобы получить свои собственные ресурсы, вам необходимо получить доступ к ресурсам через один из ваших контекстов.

Например, все действия являются контекстами, поэтому в действии вы можете сделать это:

Resources r = getResources();
int[] bases = r.getIntArray(R.array.UserBases);

Вот почему часто бывает полезно обойти контекст; он понадобится вам, чтобы получить доступ к ресурсам вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...