我之前尝试过,而且更加困惑,所以我会尝试更准确。我正在制作一个应用程序,其中我有一副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))做一些事情但是没有用(除非我做错其他的事情)[如果你不知道我不知道我在做什么]
答案 0 :(得分: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]);
答案 1 :(得分:0)
你的问题有点含糊不清,但是无论我理解什么,我建议,如果你确定只有7个套牌,为什么不对它们进行硬编码并为它们分配值。因此,当你调用随机函数时,它将检查哪个数字是结果,假设它是5,然后调用setDrawableResource(R.drawable.img5),依此类推。
答案 2 :(得分:0)
你应该把卡片保存在一个数组或某种List
中。然后,您可以通过他们的号码来引用它们。例如:
ArrayList<Card> deck = new ArraList<Card>();
//Fill the ArrayList. Maybe shuffle it.
selectedCard = ArrayList.get(randomNumber);
Card
可能只是String
或其他内容。我不知道你正在使用什么样的对象。
答案 3 :(得分:0)
你应该使用ImageView而不是MediaPlayer。您应该将7个图像(R.drawables.mythos1,...)分配到1-7,并根据随机数将其设置为ImageView imageView.setDrawableResource(R.drawable.myths1);
。从这里查看示例Get the ID of a drawable in ImageView