我使用随机数将imageButton设置为随机图像。我想知道是否有一种方法可以在drawable的文件路径中使用random int。此代码为无效整数提供运行时错误,但将进行编译。
Random generator = new Random();
int chooseFirstPicture = generator.nextInt(2);
int imagePath1 = Integer.parseInt("R.drawable.image" + chooseFirstPicture);
btn1.setBackgroundResource(imagePath1);
答案 0 :(得分:1)
嗯..你试图将“R.drawable.image1”字符串转换为不可能的整数。在编译期间,没有检查字符串中的内容,但是当您运行应用程序时,它会立即失败。
最好使用带有适当参数的getResources()。getIdentifier()(link)
我希望它有所帮助:)
答案 1 :(得分:1)
您正在将String
解析为Integer
,因此每次运行代码时都会抛出NumberFormatException
。
从String键获取资源ID 的正确方法是使用函数getIdentifier()
:
Random generator = new Random();
int chooseFirstPicture = generator.nextInt(2);
int resourceId = getResources().getIdentifier("image" + chooseFirstPicture, "drawable", getPackageName());
if (resourceId != 0) {
//Provided resource id exists in "drawable" folder
btn1.setBackgroundResource(imagePath1);
} else {
//Provided resource id is not in "drawable" folder.
//You can set a default image or keep the previous one.
}
您可以在Android Resources class文档中找到更多信息。