根据选择的字符串显示图像?

时间:2012-08-28 13:38:05

标签: android arrays string image random

我现在有一个代码仪式,只是从一个数组生成一个随机饮料组合,我需要做的是为每个选择分配不同的图像并让它显示该图像。 这是我随机饮料的代码:

    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作为示例,但它不起作用?

1 个答案:

答案 0 :(得分:2)

您可以在上下文中使用getResources().getIdentifier("image_name", null, "your_application_package");来检索图片ID。然后,您可以像使用R.id.image_name一样使用此ID。

编辑:它需要是“可绘制的”而不是空的。见下文。