Подтвердить что ты не робот

Получить целочисленный массив из ресурса xml в программе Android

Просто быстро,

У меня есть ресурс xml в res/values ​​/integers.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>

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

int[] bases = R.array.UserBases;

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

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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