2012-04-13 6 views
1

Ich habe es früher versucht und bin nur noch verwirrter geworden, also werde ich versuchen, genauer zu sein. Ich mache eine App, in der ich ein Deck mit 7 Karten habe. Ich möchte auf das Deck klicken und eine der 7 Karten auf dem Bildschirm erscheinen lassen. Bisher habe ichZeigen Sie ein zufälliges Bild an, wenn Sie auf eine Schaltfläche klicken

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 
    } 

} 

Bisher dies die Karten-Deck zeigt, welche ich auf und eine Zufallszahl generiert wird (das Textfeld ist fast für mich die Zufallszahl zu wissen Generator arbeitet, wird entfernt, wenn i Finde das Display heraus).

Also meine Frage Wie kann ich die Zufallszahl mit einer zufälligen Karte entsprechen und die Karte angezeigt bekommen? - Die Karten sind mit mythos1, mythos2 usw. gekennzeichnet, also nahm ich an, ich könnte etwas mit mythos (String.valueOf (n)) machen, aber das hat nicht funktioniert (es sei denn, ich mache etwas anderes falsch) [wenn du es nicht sagen kannst Ich habe keine Ahnung, was ich tue]

+0

Sie wollen von den 7 eine Karte zu erzeugen, auf dem Bildschirm angezeigt werden? –

+0

Hmm ... @ Rashmi.B ist richtig. Die Frage ist vage. Ich habe eine völlig andere Frage an alle anderen beantwortet. Sie sind offensichtlich neu darin, aber wenn Sie genau erklären können, was Sie fragen, würde das helfen. :) – AlbeyAmakiir

Antwort

5

Versuchen Sie, diese Art und Weise

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

funktioniert! Wie ein Zauber! Vielen Dank! – bribrem

0

Ihre Frage ist irgendwie mehrdeutig, aber mit was auch immer ich verstand, schlage ich vor, wenn Sie sicher sind, nur 7 Decks zu haben, warum codieren Sie sie nicht hart und vergeben einen Wert zu jedem von ihnen. Wenn Sie also eine Zufallsfunktion aufrufen, wird geprüft, welche Zahl das Ergebnis ist. Angenommen, es ist 5, dann wird setDrawableResource (R.drawable.img5) usw. aufgerufen.

0

Sie sollten die Karten in einem Array oder List einer Art halten. Dann können Sie sich anhand ihrer Nummer auf sie beziehen. Zum Beispiel:

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

//Fill the ArrayList. Maybe shuffle it. 

selectedCard = ArrayList.get(randomNumber); 

Card konnte einfach String oder etwas, statt sein. Ich weiß nicht, was für ein Objekt du dafür benutzt.

0

Sie sollten ImageView anstelle von MediaPlayer verwenden. Sie sollten 7 Bildern (R.drawables.mythos1, ...), die mit 1-7 zugewiesen wurden, zuweisen und sie je nach der Zufallszahl auf ImageView imageView.setDrawableResource(R.drawable.myths1); setzen. am Beispiel Schauen Sie von hier Get the ID of a drawable in ImageView

Verwandte Themen