【问题标题】:How do I randomly pass a variable to R.drawable in Eclipse for Android?如何在 Eclipse for Android 中将变量随机传递给 R.drawable?
【发布时间】:2013-06-26 21:58:20
【问题描述】:

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

【问题讨论】:

  • This 应该会有所帮助。

标签: java android eclipse


【解决方案1】:

尝试类似:

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

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

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

【讨论】:

  • 谢谢,这行得通!你能解释一下你的代码以便我理解吗?
猜你喜欢
  • 2021-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-01
  • 2015-11-08
  • 2021-06-21
  • 1970-01-01
  • 2014-10-05
相关资源
最近更新 更多