作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我试图从我的可绘制文件夹中获取随机图像,并将其设置在 ImageView 中。所有图像都以“kitten”开头,后面跟着一个数字,从 1 到 17,它被硬编码到变量“kittensMax”中。当我运行我的代码时,它会在此处的第三行抛出 NumberFormatException。我认为问题在于“R.drawable.kitten#”不是一个可以“解析”为 int 的数字,因为它代表一个 int。有什么建议吗?
Random r = new Random();
String drawableKitten = "R.drawable.kitten" + r.nextInt(kittensMax);
kittensImageView.setImageResource(Integer.parseInt(drawableKitten));
最佳答案
尝试这样的事情:
int resID = getResources().getIdentifier("kitten" + r.nextInt(kittensMax), "drawable", getPackageName());
这使用了 Resources 类中的一个方法,该方法允许您使用资源的名称、类型和包名称来查找资源的 ID。可以看文档here .
对于其他类型或资源,如 id
、string
、raw
等,它的工作方式类似。只需更改第二个参数以反射(reflect)类型你想要的资源。
关于java - 如何在 Eclipse for Android 中将变量随机传递给 R.drawable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17376371/
我是一名优秀的程序员,十分优秀!