2015-08-28 76 views
0

对不起,标题不好,但。我想要达到的是这个。使用变量获取资源字段

private void updateImage(int number) { 
    imageView.setImageResource(R.drawable.img0); 
} 

..where在IMG0 0实际上是参数

JavaScript的方法是R.drawable['img' + number]

回答

0

没有道理的方法可以是简单的使用整数数组。把所有的resourceId放在一个数组中,只需通过索引来调用数组元素。

int[] resIds = new int[] { 
     R.drawable.img0, 
     R.drawable.img1, 
     R.drawable.img2, 
     R.drawable.img3 
} 

private void updateImage(int number) { 
     imageView.setImageResource(resIds[number]); 
} 
0

尝试思考

for(Field field : R.drawable.getClass().getFields()) { 
    if(field.getName().equals("img" + number)) { 
      imageView.setImageResource(field.get(R.drawable)); 
    } 
} 
+0

'非静态方法的getClass()不能从一个静态context'引用 – joakim