无法从XML获取数组字符串资源

Org*_*cat 12 xml arrays android

我在XML文件中有一个值列表,我想根据微调器选择来选择它.由于某种原因,使用数组字符串为微调器工作正常,值将填充到微调器.无论出于何种原因,我无法获取第二个数组的值来挽救我的生命,它们位于同一个文件中,没有我能找到的错误.这是我试图抓住它们的方式:

String[] some_array = getResources().getStringArray(R.array.playerclassdesc_array);
Run Code Online (Sandbox Code Playgroud)

微调器的填充方式不同(执行此部分时没有错误):

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
    this, R.array.playerclass_array, android.R.layout.simple_spinner_item);
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

"04-26 21:41:35.305:ERROR/AndroidRuntime(514):引起:android.content.res.Resources $ NotFoundException:字符串数组资源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>
Run Code Online (Sandbox Code Playgroud)

Org*_*cat 11

当我找到答案后,我讨厌它!

出于某种原因,Android没有正确地重新编译阵列所在的XML文件,因此在更改名称,然后将其更改回来之后,它现在可以正常工作.所以我的解决方案是我必须在数组所在的XML文件中进行一些编辑,因为它没有正确地重新编译,尽管Eclipse告诉我它是.


小智 6

我尝试在ArrayAdapter的构造函数中执行Cast,或者在ArrayAdapter中查找元素的类型.

ArrayAdapter<String> adapter = ArrayAdapter.createFromResource(
this, R.array.playerclass_array, android.R.layout.simple_spinner_item);
Run Code Online (Sandbox Code Playgroud)