我的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:String array resource ID#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>
答案 0 :(得分:11)
当我找到答案后,我讨厌它!
出于某种原因,Android没有正确地重新编译该阵列所在的XML文件,因此在更改名称,然后将其更改回来后,它现在可以正常工作。所以我的解决方案是我必须在数组所在的XML文件中进行一些编辑,因为它没有正确地重新编译,尽管Eclipse告诉我它是。
答案 1 :(得分:6)
我尝试在ArrayAdapter的构造函数中执行Cast,或者在ArrayAdapter中更改元素的类型。
ArrayAdapter<String> adapter = ArrayAdapter.createFromResource(
this, R.array.playerclass_array, android.R.layout.simple_spinner_item);
答案 2 :(得分:2)