0

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

    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”然后我显示瓶子的图片,它吐出“Sky”然后变成那个瓶子的图片。如果不为每个选项制作一个 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 中,但它不起作用?

4

1 回答 1

2

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

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

于 2012-08-28T13:46:38.447 回答