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

Не удается получить массив строк из XML

У меня есть список значений в моем XML файле, который я бы хотел выбрать, основываясь на выборе счетчика. По какой-то причине использование строки массива для счетчика отлично работает, значения заполняются в счетчик. По какой-то причине я не могу получить значения второго массива для сохранения моей жизни, они находятся в том же файле, который не имеет ошибок, которые я могу найти. Вот как я их пытаюсь схватить:

String[] some_array = getResources().getStringArray(R.array.playerclassdesc_array);

Счетчик заполняется по-разному (ошибок нет в этой части):

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
    this, R.array.playerclass_array, android.R.layout.simple_spinner_item);

Ошибка, которую я получаю:

"04-26 21: 41: 35.305: ERROR/AndroidRuntime (514): вызвано: android.content.res.Resources $NotFoundException: Идентификатор ресурса массива строк # 0x7f050001"

Это относится непосредственно к строке "getResources". Кто-нибудь знает, почему это может произойти?

Изменить: Вот xml файл (это просто)

<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <string name="class_prompt">Choose a class</string>
    <string-array name="playerclass_array">
        <item>Assassin</item>
        <item>Paladin</item>
        <item>Pirate</item>
        <item>Hell Mage</item>
        <item>Winter Witch</item>
        <item>Shadow Walker</item>
        <item>Underthief</item>
        <item>Red Warrior</item>
        <item>Haru Norda</item>
    </string-array>
    <string-array name="playerclassdesc_array">
        <item>This is the Assassin</item>
        <item>This is the Paladin</item>
        <item>This is the Pirate</item>
        <item>This is the Hell Mage</item>
        <item>This is the Winter Witch</item>
        <item>This is the Shadow Walker</item>
        <item>This is the Underthief</item>
        <item>This is the Red Warrior</item>
        <item>This is the Haru Norda</item>
    </string-array>
</resources>
4b9b3361

Ответ 1

Я ненавижу, когда я нахожу ответ сразу!

По какой-то причине Android не правильно перекомпилировал XML файл, в котором находился массив, поэтому после изменения имени и последующего его изменения он теперь работает. Поэтому мое решение состоит в том, что мне пришлось внести некоторые изменения в XML файл, в котором находился массив, потому что он не перекомпилировался правильно, несмотря на то, что Eclipse говорил мне, что это было.

Ответ 2

Я пытаюсь сделать Cast в конструкторе ArrayAdapter или изменить тип элемента в ArrayAdapter.

ArrayAdapter<String> adapter = ArrayAdapter.createFromResource(
this, R.array.playerclass_array, android.R.layout.simple_spinner_item);

Ответ 3

Я сталкивался с подобными проблемами несколько раз. Я обнаружил, что использование Project | Чистый вариант в Eclipse, а затем восстановление моего проекта всегда решает их. Это то, что вы делаете, редактируя XML файл; вы заставляете Eclipse перестраивать свои ресурсы из XML файла.