2012-04-13 65 views
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)),但這並不奏效(除非我做了其他錯誤)[如果你不能說我不知道我在做什麼]

+0

要生成從7你在屏幕上顯示的任何卡? – 2012-04-13 05:41:19

+0

嗯...... @ Rashmi.B是對的。這個問題很模糊。我已經向其他人回答了一個完全不同的問題。你顯然是新手,但如果你能明確說明你要問什麼,那會有幫助。 :) – AlbeyAmakiir 2012-04-13 05:49:16

回答

5

嘗試這種方式

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]); 
+0

作品!像一個魅力!非常感謝! – bribrem 2012-04-13 06:43:14

0

你的問題有點模棱兩可,但無論我瞭解多少,我建議,如果你確信只有7副牌,爲什麼不硬編碼他們並分配一個值給他們每個人。所以當你調用隨機函數時,它會檢查哪個數字是結果,假設它是5,然後調用setDrawableResource(R.drawable.img5)等等。

0

您應該將卡片保存在某種陣列或List之內。然後,你可以通過他們的號碼來引用他們。例如:

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

//Fill the ArrayList. Maybe shuffle it. 

selectedCard = ArrayList.get(randomNumber); 

Card可能僅僅是String什麼的,來代替。我不知道你用什麼樣的對象。

0

您應該使用ImageView而不是MediaPlayer。您應該將7個圖像(R.drawables.mythos1,...)分配到1-7,並根據隨機數將其設置爲ImageView imageView.setDrawableResource(R.drawable.myths1);。請看例子從這裏Get the ID of a drawable in ImageView