M
mateaz
Ambitioniertes Mitglied
- 1
Hallo, ich bin gerade dabei meine erste App zu programmieren und habe ein Problem. Hier erstmal der Quellcode der MainActivity:
Die App sollte, wenn sie fertig ist, dem Spiel "Simon Says" ähneln. Das ist das Spiel, wo man vier verschiedenfarbige Buttons hat und eine vorgegebene Reihenfolge wiedergeben muss. Ich bin bis jetzt soweit, dass man den Vorgang starten kann und man bspw. den Befehl bekommt GELB zu drücken. Hat man dies getan, muss man allerdings auf TEST drücken, um zu überprüfen, ob die Eingabe richtig war. Wie kann ich es hinbekommen, dass dazu kein Klick auf TEST notwendig ist, sondern das das von alleine geschieht?
Code:
package com.example.simonsays;
import java.util.Random;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
Button red, green, yellow, blue, start, test;
TextView anzeige;
int aktuell = 0,farbe = 5;
boolean onoff = false;
public MediaPlayer mp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
red = (Button) findViewById(R.id.bRed);
green = (Button) findViewById(R.id.bGreen);
yellow = (Button) findViewById(R.id.bYellow);
blue = (Button) findViewById(R.id.bBlue);
start = (Button) findViewById(R.id.bStart);
test = (Button) findViewById(R.id.bTest);
anzeige = (TextView) findViewById(R.id.tvAnzeige);
start.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
onoff = true;
aktuell = 0;
if(onoff = true){
Random zufall = new Random();
for (int i=0; ;i++){
farbe = 1 + zufall.nextInt(4);
if(i==1){
break;
}
}
}
if(farbe == 1){
anzeige.setText("Red");
mp = MediaPlayer.create(getApplicationContext(), R.raw.sound1);
mp.start();
}
else if(farbe == 2){
anzeige.setText("Green");
mp = MediaPlayer.create(getApplicationContext(), R.raw.sound2);
mp.start();
}
else if(farbe == 3){
anzeige.setText("Yellow");
mp = MediaPlayer.create(getApplicationContext(), R.raw.sound3);
mp.start();
}
else if(farbe == 4){
anzeige.setText("Blue");
mp = MediaPlayer.create(getApplicationContext(), R.raw.sound4);
mp.start();
}
}
});
test.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
if(farbe == aktuell){
anzeige.setText("That's right! :) start again");
}
else if(farbe != aktuell && aktuell != 0 && farbe != 5){
anzeige.setText("That's wrong! :( try another colour");
}
else if(farbe == 5){
anzeige.setText("Please click on the Start-Button first!");
}
else if(aktuell == 0){
anzeige.setText("Please click on one Colour-Button before using the Test!");
}
}
});
blue.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
aktuell = 4;
mp = MediaPlayer.create(getApplicationContext(), R.raw.sound4);
mp.start();
}
});
yellow.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
aktuell = 3;
mp = MediaPlayer.create(getApplicationContext(), R.raw.sound3);
mp.start();
}
});
green.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
aktuell = 2;
mp = MediaPlayer.create(getApplicationContext(), R.raw.sound2);
mp.start();
}
});
red.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
aktuell = 1;
mp = MediaPlayer.create(getApplicationContext(), R.raw.sound1);
mp.start();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
}
Die App sollte, wenn sie fertig ist, dem Spiel "Simon Says" ähneln. Das ist das Spiel, wo man vier verschiedenfarbige Buttons hat und eine vorgegebene Reihenfolge wiedergeben muss. Ich bin bis jetzt soweit, dass man den Vorgang starten kann und man bspw. den Befehl bekommt GELB zu drücken. Hat man dies getan, muss man allerdings auf TEST drücken, um zu überprüfen, ob die Eingabe richtig war. Wie kann ich es hinbekommen, dass dazu kein Klick auf TEST notwendig ist, sondern das das von alleine geschieht?