3

我正在尝试从我的可绘制文件夹中获取随机图像,并将其设置在 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));
4

1 回答 1

4

尝试类似:

int resID = getResources().getIdentifier("kitten" + r.nextInt(kittensMax), "drawable", getPackageName());

这使用了 Resources 类中的一个方法,该方法允许您使用资源的名称、类型和包名称来查找资源的 ID。您可以在此处查看文档。

id对于其他类型或资源,如,等string,它的工作方式类似raw。只需更改第二个参数以反映您想要的资源类型。

于 2013-06-29T03:29:56.430 回答