Должен ли я использовать что-то кроме getResource().getStringArray() для заполнения большого массива?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Должен ли я использовать что-то кроме getResource().getStringArray() для заполнения большого массива?

Сообщение Anonymous »

Следуя примеру Android для заполнения ListView, я запрашиваю массив из моего strings.xml с помощью Activity.getResource().getStringArray():

Код: Выделить всё

String [] mDefinitions = getResources().getStringArray(R.array.definition_array);
Документация по этому методу довольно понятна, и я не ожидал, что с ним возникнут какие-либо проблемы:


Верните массив строк, связанный с определенным идентификатором ресурса.


Этот подход работал, как и ожидалось, для небольших данных. наборы. Однако когда я заполнил strings.xml полным набором данных (около 2000 записей), я обнаружил, что приложение аварийно завершилось при попытке загрузить ресурс. Я заметил эту ошибку в журнале консоли:


Переполнение таблицы ссылок (max=512)


Поиграв с количеством элементов в моем массиве строк, я подтвердил, что ошибка воспроизводится, когда количество элементов превышает ~700 записей.

Погуглив проблему, удалось найти несколько примеров того, как другие разработчики столкнулись с такой же проблемой, но я не могу найти в документации Android ничего, что могло бы объяснить это.

Кто-то потрудился создать проблему для проблемы на странице Android Google Code, но ни она, ни какое-либо из сообщений, с которыми я столкнулся, не получили удовлетворительного результата. ответ.

Я неправильно подхожу к проблеме? Должен ли я самостоятельно заполнять данные (загружать файл и анализировать JSON или что-то подобное) и полностью избегать этой проблемы? Такое ощущение, что я здесь упускаю что-то очевидное.

Подробнее здесь: https://stackoverflow.com/questions/352 ... to-populat
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»