Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法从XML获取数组字符串资源_Android_Xml_Arrays - Fatal编程技术网

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

Android 无法从XML获取数组字符串资源,android,xml,arrays,Android,Xml,Arrays,我的XML文件中有一个值列表,我想根据微调器选择来选择它。出于某种原因,使用数组字符串作为微调器可以很好地工作,这些值将填充到微调器中。无论出于何种原因,我无法获取第二个数组的值来拯救我的生命,它们位于同一个文件中,我无法找到任何错误。以下是我试图抓住他们的方式: String[] some_array = getResources().getStringArray(R.array.playerclassdesc_array); 微调器的填充方式不同,执行此部分时没有错误: ArrayAdap

我的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:错误/AndroidRuntime514:原因: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>

我讨厌我马上找到答案


由于某些原因,Android没有正确地重新编译数组所在的XML文件,因此在更改名称后,再将其更改回来,它现在可以工作了。因此,我的解决方案是,我必须对数组所在的XML文件进行一些编辑,因为尽管Eclipse告诉我它是正确的,但它没有正确地重新编译。

我已经多次遇到类似的问题。我发现在Eclipse中使用Project | Clean选项,然后重新构建我的项目总能解决这些问题。这基本上就是您通过编辑XML文件所做的事情;您正在强制Eclipse从XML文件重建其资源。

我尝试在ArrayAdapter的构造函数中执行强制转换,或更改ArrayAdapter中元素的类型

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

把这个标记为答案,这样我们就可以把它过滤掉。我必须等待,显然回答你自己的问题有两天的时间限制。我把这个问题留给别人,以防有人碰到同样的问题。我讨厌我一找到答案就这么做!同样的事情也发生在我身上至少3-4次:p