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

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

у меня есть ресурс 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)

Решение Вопроса

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

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

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

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

 James14 янв. 2010 г., 19:01
Даниэль прав, ты можешьсделать это.
 Daniel Lew14 янв. 2010 г., 16:35
я не уверенможно обновить XML из кода; все ресурсы xml компилируются в двоичный файл при сборке apk. Вы должны задать новый вопрос, может быть, кто-то еще знает.
 JERiv14 янв. 2010 г., 16:18
Холодные бобы! Большое спасибо. также, каков наилучший способ добавлять и удалять элементы из массива (сохранить редактирование необработанного XML) - существенно обновляя любые изменения из int [] в xml.I '

Ваш ответ на вопрос