- Forum-Beiträge: 5
26.05.2015, 00:11:19 via Website
26.05.2015 00:11:19 via Website
Hallo zusammen, mein Problem ist wie folgt. Ich habe einen Thread, in dem ich u.a. die Zufallszahl "rando" ermittle (zwischen 1-3), diese Zufallszahl ist eine Global deklarierte Variable und ich brauche sie für meine darunterliegende Switch Case Bedingung.
Jedoch komme ich in keinen Case rein.
Meine Vermutung ist, da der Thread und das übrige Programm ja paralell ablaufen, die Zufallszahl erst zu spät ermittelt wird und so nicht von der Switch-Case Bedingung benutzt werden kann.
Ich bin über jegliche Hilfe dankbar! Ist ein Schulprojekt in das ich schon etliche Stunden investiert habe. Vielen Dank schon mal!!!
progressBar = (ProgressBar) findViewById(R.id.progressBar1);
textView = (TextView) findViewById(R.id.textView1);
// Start long running operation in a background thread
new Thread(new Runnable() {
public void run() {
while (progressStatus < 90 && progressStatus > 10) {
progressStatus += 1;
if(progressStatus == 70){
System.out.println("70 erreicht");
rando =(int) (Math.random()*3+1);} // HIER DIE GENANNTE ZEILE!
handler.post(new Runnable() {
public void run() {
progressBar.setProgress(progressStatus);
textView.setText("Blutzucker: " + progressStatus+"/"+progressBar.getMax());
}
});
try {
// Sleep for 200 milliseconds.
//Just to display the progress slowly
Thread.sleep(500); //War auf 500
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
} ).start()
switch(rando){
case 1:
button1.setBackgroundResource(R.drawable.pressed);
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (progressStatus >= 70 && progressStatus < 90) {
progressStatus = progressStatus - 20;
System.out.println("rando ist:" + rando);
System.out.println("Schnösel");
}
}
});break;
case 2:
button1.setBackgroundResource(R.drawable.pressed);
button2.setOnClickListener(new View.OnClickListener() {
public void onClick(View b) {
if (progressStatus >= 70 && progressStatus < 90) {
progressStatus = progressStatus -20;
System.out.println("rando ist:" + rando);
System.out.println("Peter");
}
}
});break;
case 3:
button1.setBackgroundResource(R.drawable.pressed);
button3.setOnClickListener(new View.OnClickListener() {
public void onClick(View n) {
if (progressStatus >= 70 && progressStatus < 90) {
progressStatus = progressStatus -20;
System.out.println("rando ist:" + rando);
System.out.println("Ralf");
}
}
});break;
}
}
— geändert am 26.05.2015, 10:56:48
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.