Получить целочисленный массив из ресурса 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, но я не нашел ничего ужасно плодотворного.
Ответы
Ответ 1
Вам нужно использовать ресурсы для получения массива int; однако вы используете системные ресурсы, которые включают только стандартные ресурсы Android (например, доступные через android.R.array.*
). Чтобы получить свои собственные ресурсы, вам необходимо получить доступ к ресурсам через один из ваших Контекстов.
Например, все действия являются Контекстами, поэтому в Управлении вы можете сделать это:
Resources r = getResources();
int[] bases = r.getIntArray(R.array.UserBases);
Вот почему часто полезно передавать Контекст; вам понадобится, чтобы получить доступ к ресурсам приложения.