迭代通过R类

Fug*_*ugo 2 android

是否有任何可能的方法来迭代R.raw或R.drawable或任何R类?我想动态地获取该文件夹上的每个id.

ArrayList resArray = new ArrayList();
foreach(int id : R.raw) {
resArray.add(id);
}
Run Code Online (Sandbox Code Playgroud)

或者还有其他方法吗?

Mat*_*lis 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()));
    }
}
Run Code Online (Sandbox Code Playgroud)