java - 资源 ID 的整数数组返回 0

标签 java android xml android-drawable android-resources

我有一组存储在数组中的资源 ID。这是在回收器 View 中访问以填充 ImageView 。问题是当我访问数组时,返回的所有值都是 0。

// arrays.xml
<array name="array_category_icons">
    <item>@drawable/autumn</item>
    <item>@drawable/backpack</item>
</array>

// inside recycler view adapter
int[] myIcons = getActivity().getResources().getIntArray(R.array.array_category_icons);

myIcons[i] always returns 0. 

可绘制对象仅位于 hdpi 文件夹中。

最佳答案

这样做:

TypedArray ta = getResources().obtainTypedArray(R.array.array_category_icons);
Drawable[] icons = new Drawable[ta.length()];
for (int i = 0; i < ta.length(); i++) {
    int id = ta.getResourceId(i, 0);
    if (id != 0) {
        icons[i] = ContextCompat.getDrawable(this, id);
    }
}
ta.recycle();

关于java - 资源 ID 的整数数组返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43307243/

相关文章:

java - 如何有一个带有 backgroundTint 和圆角半径的按钮

java - 一个Web服务可以调用同一应用服务器中的另一个Web服务吗

java - 为什么下面的程序在没有 sleep 的情况下会进入死锁状态,但在 sleep 状态下它会执行所有三个线程并正常终止?

java - 如何检查用户定义的(EditText)时间内某件事是否属实?

c# - 允许我查看/编辑请求 XML 的 WCF 测试客户端

java - 使用JAVA合并多个XML文件的不同节点

java - 我的 DataProvider 没有被调用

java - 抽屉导航无法点击页面(Android Studio)

android - 我可以在非 root 设备上使用 sqlite 3

java - 数组中 TextEdit 中的参数不正确