我现在有一个代码仪式,只是从一个数组生成一个随机饮料组合,我需要做的是为每个选择分配不同的图像并让它显示该图像。 这是我随机饮料的代码:
if(Vodka.equals(true)){
final TextView text2 = (TextView) findViewById(R.id.display2);
randomIndex = random.nextInt(array_city.Vodka.length);
text2.setText(array_city.Vodka[randomIndex]);
}
说这个代码吐出“Smirnof”然后我显示瓶子的图片,它吐出“天空”然后变成那个瓶子的图片。如果不为每个选项创建一个if语句,我将如何做到这一点,我的数组很长,而且很多if语句我只是希望有一个更简单的方法来做到这一点? 谢谢任何人的帮助!非常感谢我一直坚持这一点。
=============================================== ================ @Joan
以下是我尝试使用您的代码整理的内容:
//Run option Vodka
if(Vodka.equals(true)){
final TextView text2 = (TextView) findViewById(R.id.display2);
randomIndex = random.nextInt(array_city.Vodka.length);
text2.setText(array_city.Vodka[randomIndex]);
final ImageView image = (ImageView) findViewById(R.id.imageView1);
int Cimage = getResources().getIdentifier(array_city.Vodka[randomIndex], null, "com.famousmods.what.should.i.drink");
image.setImageResource(Cimage);
}
这是我的数组的样子(一个较小的例子):
public static final String[] Vodka = {"Absolut Vodka","Finlandia","Ketel One","Polmos Krakow","Skyy","smirnoff vodka",
"Stolichnaya","Fleischmann's","Gilbey's","Gordon's","Wolfschmitt","Five-O-Clock"};
我已将文件“smirnoff_vodka.png”放入我的res / drawables作为示例,但它不起作用?
答案 0 :(得分:2)
您可以在上下文中使用getResources().getIdentifier("image_name", null, "your_application_package");
来检索图片ID。然后,您可以像使用R.id.image_name
一样使用此ID。
编辑:它需要是“可绘制的”而不是空的。见下文。