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

20

Просто быстренько,

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



     
          2
          8
          10
          16
     

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

int[] bases = R.array.UserBases;

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

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

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

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

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

Ваш Ответ

1   ответ
62

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

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

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

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

Даниэль прав, ты можешьсделать это. James
я не уверенможно обновить XML из кода; все ресурсы xml компилируются в двоичный файл при сборке apk. Вы должны задать новый вопрос, может быть, кто-то еще знает. Daniel Lew
Холодные бобы! Большое спасибо. также, каков наилучший способ добавлять и удалять элементы из массива (сохранить редактирование необработанного XML) - существенно обновляя любые изменения из int [] в xml.I ' JERiv

Похожие вопросы