在我的应用中,我使用了一系列可绘制的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的整数数组?
谢谢:)
答案 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类中出现错误的原因。谢谢你们!