Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.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 获取id可提取资源的数组_Android_Resources_Drawable - Fatal编程技术网

Android 获取id可提取资源的数组

Android 获取id可提取资源的数组,android,resources,drawable,Android,Resources,Drawable,我需要许多类似的可提取资源。 我在drawable文件夹中创建了我所需的文件 然后,使用数组创建资源文件: <array name="btn_style"> <item>@drawable/tile0</item> <item>@drawable/tile1</item> ... </array> 我从数组中得到零 如果我这样做 int[] btn_draw = {R.drawable.tile

我需要许多类似的可提取资源。 我在drawable文件夹中创建了我所需的文件 然后,使用数组创建资源文件:

<array name="btn_style">
    <item>@drawable/tile0</item>
    <item>@drawable/tile1</item>
    ...
</array>
我从数组中得到零

如果我这样做

  int[] btn_draw = {R.drawable.tile0,R.drawable.tile1};

一切正常。

如果我理解你的问题。。以下是你的答案:

试试这个: 您可以使用类型化数组

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

        <string-array name="random_imgs">
            <item>@drawable/car_01</item>
            <item>@drawable/balloon_random_02</item>
            <item>@drawable/dog_03</item>
        </string-array>

    </resources>

我没有声誉评论你的问题,所以我必须发布一个答案

我相信这个问题已经得到了回答:


我不明白你的要求。你能解释一下你想要什么吗
我从零开始接收数组。
-是的,正确,数组从索引0开始。我想要接收ID资源数组,而不是零数组。我找到了解决方法,但我想了解为什么会出现这种情况。
我从零接收数组。
我相信OP的意思是他从数组接收到了零值。我编辑了这个问题来澄清@OP:我猜您使用
getIntArray()
收到错误值的原因是您的XML使用
而不是
。我按照本例中的说明执行。但在我的案例中,它不适用于drawable。
<?xml version="1.0" encoding="utf-8"?>
    <resources>

        <string-array name="random_imgs">
            <item>@drawable/car_01</item>
            <item>@drawable/balloon_random_02</item>
            <item>@drawable/dog_03</item>
        </string-array>

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