java - 可绘制 ID 可乐零

标签 java android

<integer-array name="ar_ex_1">
    <item>@drawable/ar_001_main</item>
    <item>@drawable/ar_001_1</item>
    <item>@drawable/ar_001_2</item>
    <item>@drawable/ar_001_3</item>
    <item>@drawable/ar_001_4</item>
    <item>@drawable/ar_001_5</item>
</integer-array>

我有这个整数数组,我使用以下方法将其加载到 Java 中:

int[] arr = getResources().getIntArray(R.array.ar_ex_1);
for(int i: arr) {
   Log.e("anindya", ""+i);
}

输出为:

06-04 20:31:57.045 9360-9360/edu.usc.projecttalent.cognitive E/anindya: 0
06-04 20:31:57.045 9360-9360/edu.usc.projecttalent.cognitive E/anindya: 0
06-04 20:31:57.045 9360-9360/edu.usc.projecttalent.cognitive E/anindya: 0
06-04 20:31:57.045 9360-9360/edu.usc.projecttalent.cognitive E/anindya: 0
06-04 20:31:57.045 9360-9360/edu.usc.projecttalent.cognitive E/anindya: 0
06-04 20:31:57.045 9360-9360/edu.usc.projecttalent.cognitive E/anindya: 0

我本来期待整数(R.java 中的 drawable 的值,但我只得到零。这不是加载数组的方法吗?可绘制的?

最佳答案

如果这是 array.xml 中的可绘制数组,请尝试这种代码。

 <integer-array name="ar_ex_1">
        <item>@drawable/ar_001_main</item>
        <item>@drawable/ar_001_1</item>
        <item>@drawable/ar_001_2</item>
        <item>@drawable/ar_001_3</item>
        <item>@drawable/ar_001_4</item>
        <item>@drawable/ar_001_5</item>
    </integer-array>

然后在您的 Activity 中,像这样访问它们:

TypedArray imgs = getResources().obtainTypedArray(R.array.ar_ex_1);

// get resource ID by index
imgs.getResourceId(i, -1)

// or set you ImageView's resource to the id
mImgView1.setImageResource(imgs.getResourceId(i, -1));

// recycle the array
imgs.recycle();

关于java - 可绘制 ID 可乐零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44361313/

相关文章:

java - 如何在两个消费者组之间进行Kafka同步

java - 为什么我的程序在编译时没有产生任何输出?

java - 多级包 - Java

java - VideoView的setVideoPath和setVideoURI有什么区别

android - 通话类型(来电/去电/未接)如何存储在 Android 通话记录中?

Java程序运行时错误

java - 你在哪里存储数据库密码?

android - Android如何复用同一个数据绑定(bind)类?

android - 我可以添加一个按钮吗?

Android 低功耗蓝牙 - iBeacon