do-while-Schleife mit Button weiter

  • Hallo!
    Ich hole mir aus meiner Datenbank Fragen und Antworten und stelle sie dar. Das funktioniert auch wunderbar (über ListActivity).


    Jetzt aber wollte ich gerne eine Frage zur Zeit und die Antwort dazu. Dazu habe mir die Buttons Richtig und Falsch hinzugefügt. Leider hänge ich jetzt in der while-Schleife fest. Ich bekomme zwar meine Toast-Nachricht, aber die while-Schleife geht nicht weiter.


    Habt ihr eine Idee? Vllt. ist mein Ansatz auch falsch.


    Der Quelltext sieht wie folgt aus:




    // Check if our result was valid.
    c.moveToFirst();
    if (c != null) {
    int i = 0;
    // Loop through all Results
    do {
    i++;


    String Question = c.getString(columnQuestion);
    String Answer = c.getString(columnAnswer);


    txtQuestion.setText(Question);
    txtAnswer.setText(Answer);


    btnCorrect.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {


    Toast toast = Toast.makeText(getApplicationContext(), "Richtig", Toast.LENGTH_SHORT);
    toast.show();


    newquestion = 1;


    }
    });




    } while (c.moveToNext() && newquestion == 1);
    }

  • Die Variable habe ich vor OnCreate in der Klasse deklariert. Also sollte das passen.
    Dann habe ich mir in der Methode onClick die Variable mittels

    Java
    Log.d("newquestion: ", String.valueOf(newquestion));


    ausgeben lassen und sie wird auf 1 gesetzt.


    Kann es vielleicht daran liegen, dass er aus der Schleife springt, sobald die Bedingung nicht erfüllt ist und gar nicht auf den Button-klick wartet?

  • Ah klar...manchmal sieht man den Wald vor lauter Bäumen nicht. Genau daran liegt das natürlich, nach dem ersten Schleifendurchlauf ist newQuestion logischerweise 0, weil so schnell kannste gar nicht klicken und dann isser raus. Da is jetz natürlich der Ansatz etwas ausgehebelt ;)
    Ich würde das ganze so ungefähr machen:


    EDIT: voll blöd, irgendwie mag er meine Leerzeilen in dem Code nicht richtig übernehmen X(

  • Ok! Dann werde ich das mal so umsetzen :) Danke für die Hilfe!


    Btw: Meine Leerzeichen wollte er auch nicht haben! Deshalb ist der obere Quelltext auch einfach eingefügt. Hat es immer wieder in eine Zeile geschrieben. Nicht sehr optimal ;)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!