迭代通过R类

时间:2011-03-27 15:07:47

标签: android

有没有办法迭代R.raw或R.drawable或任何R类?我想动态地获取该文件夹上的每个id。

ArrayList resArray = new ArrayList();
foreach(int id : R.raw) {
resArray.add(id);
}

还是有其他方法吗?

1 个答案:

答案 0 :(得分:7)

您可以使用java反射执行此操作:

Class raw = R.raw.class;
Field[] fields = raw.getFields();
for (Field field : fields) {
    try {
        Log.i("REFLECTION",
            String.format("%s is %d", field.getName(), field.getInt(null)));
    } catch(IllegalAccessException e) {
        Log.e("REFLECTION", String.format("%s threw IllegalAccessException.",
            field.getName()));
    }
}