Не удается получить массив строк из 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>
Ответы
Ответ 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 файла.