问题描述
- 有什么方法可以迭代整个 R.raw,R.drawable 或者任何 R 类吗?
-
有什么方法可以迭代整个 R.raw,R.drawable 或者任何 R 类吗?我想通过 iterate 动态的来逐条获取这些文件夹的每一个id。ArrayList resArray = new ArrayList(); foreach(int id : R.raw) { resArray.add(id); }
有什么方法可以实现?
解决方案
用反射
public void field(){
Field[] fields =R.drawable.class.getFields();
for(Field f : fields){
try {
Log.d("reflect", "字段名: "+f.getName()+" 值: "+f.getInt(f));
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
03-12 17:41:53.444: D/reflect(15356): 字段名: answer_box 值: 2130837504
03-12 17:41:53.452: D/reflect(15356): 字段名: answer_box_alt 值: 2130837505
03-12 17:41:53.452: D/reflect(15356): 字段名: app_ico_48 值: 2130837506
03-12 17:41:53.452: D/reflect(15356): 字段名: app_ico_72 值: 2130837507
03-12 17:41:53.452: D/reflect(15356): 字段名: background 值: 2130837508
03-12 17:41:53.452: D/reflect(15356): 字段名: button_normal 值: 2130837509
虽然可以做到 但还是奉劝:不要动他
解决方案二:
这样做的动机何在?干嘛去管那个本不该你管的文件……
时间: 2024-12-30 17:48:33