将XML文件中的值转换为数组

时间:2012-11-17 14:28:23

标签: java android xml

在我的应用中,我使用了一系列可绘制的ID。 它是一个保存在res / values / arrays.xml的XML文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <array name="icons">
        <item>@drawable/home</item>
        <item>@drawable/settings</item>
        <item>@drawable/logout</item>
    </array>
</resources>

然后我使用此代码检索它:

Resources res = getResources();
TypedArray icons = res.obtainTypedArray(R.array.icons);
Drawable drawable = icons.getDrawable(0);

但我收到错误消息:数组“无法解析或不是字段”。

那么如何获取包含xml文件中的id的整数数组?

谢谢:)

4 个答案:

答案 0 :(得分:1)

尝试清理项目。项目 - 清洁......并检查您的进口。 CTRL + Shift + O

答案 1 :(得分:1)

您应该在res文件夹中的arrays.xml文件中使用typed array,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string-array name="icons">
        <item>@drawable/home</item>
        <item>@drawable/settings</item>
        <item>@drawable/logout</item>
    </string-array>

</resources>

然后在您的活动中访问它们:

TypedArray imgs = getResources().obtainTypedArray(R.array.icons);
//get resourceid by index
imgs.getResourceId(i, -1)
// or set you ImageView's resource to the id
mImgView1.setImageResource(imgs.getResourceId(i, -1));

答案 2 :(得分:0)

我想知道你是否应该在res / values / strings.xml中声明它

<string-array name="numbers_array">
    <item>9</item>
    <item>10</item>
    <item>11</item>
    <item>12</item>
    <item>1</item>
    <item>2</item>
    <item>3</item>
    <item>4</item>
    <item>5</item>
</string-array>

然后为上面数组中的数字设置你的id ...

答案 3 :(得分:0)

我的代码还可以。在我的res目录中,有一个带有大写字母的图像!这是无效的文件名,必须只包含[a-z0-9_。] :)这就是R类中出现错误的原因。谢谢你们!

相关问题