1

我早些时候尝试过,只是变得更加困惑,所以我会尝试更精确。我正在制作一个应用程序,其中有一副 7 张卡片。我想点击牌组并在屏幕上弹出 7 张牌中的一张。到目前为止我有

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        final MediaPlayer mpClick = MediaPlayer.create(this, R.raw.click);
        randomM = (EditText) findViewById(R.id.randomM);

        //button 1 start        
        Button bMythos = (Button) findViewById(R.id.mythos);
        bMythos.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                mpClick.start();
                Random r = new Random();
                int n=r.nextInt(7) + 1;
                randomM.setText(String.valueOf(n));
            }
        });
        //button 1 end
    }

}

到目前为止,这显示了我单击的卡片组并生成了一个随机数(文本框几乎让我知道随机数生成器正在工作;当我弄清楚显示时将被删除)。

所以我的问题 是如何让随机数与随机卡对应并显示卡?- 这些卡被标记为 mythos1、mythos2 等,所以我认为我可以用 mythos(String.valueOf(n)) 做一些事情,但这没有用(除非我做错了其他事情)[如果你不知道我不知道我在做什么]

4

4 回答 4

6

试试这个方法

 int[] cards={R.drawable.card1,R.drawable.card2,R.drawable.card3,R.drawable.card4,R.drawable.card5,R.drawable.card6,R.drawable.card7};
 Random r = new Random();
 int n=r.nextInt(7);
 imageview.setImageResource(cards[n]);
于 2012-04-13T06:02:27.463 回答
0

你的问题有点模棱两可,但无论我了解多少,我建议,如果你确定只有 7 个套牌,为什么不对它们进行硬编码并为每个套牌分配一个值。这样当你调用 random 函数时,它会检查哪个数字是结果,假设是 5,然后调用 setDrawableResource(R.drawable.img5) 等等。

于 2012-04-13T05:40:19.690 回答
0

您应该将卡片保存在数组或List某种形式中。然后,您可以通过它们的编号来引用它们。例如:

ArrayList<Card> deck = new ArraList<Card>();

//Fill the ArrayList. Maybe shuffle it.

selectedCard = ArrayList.get(randomNumber);

Card可能只是String或其他东西,而不是。我不知道你用的是什么类型的对象。

于 2012-04-13T05:41:11.787 回答
0

您应该使用 ImageView 而不是 MediaPlayer。您应该将 7 个图像(R.drawables.mythos1,...)分配给 1-7,并imageView.setDrawableResource(R.drawable.myths1);根据随机数将其设置为 ImageView。从这里查看示例获取 ImageView 中可绘制对象的 ID

于 2012-04-13T05:42:08.097 回答