0

在我的应用程序中,我使用了一组可绘制的 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

4 回答 4

1

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

于 2012-11-17T14:34:06.703 回答
1

您应该在 res 文件夹中的 arrays.xml 文件中使用类型化数组,如下所示:

<?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));
于 2012-11-17T14:51:04.340 回答
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 替换为上面数组中的数字...

于 2012-11-17T14:35:00.657 回答
0

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

于 2012-11-17T15:35:57.313 回答