2012-04-05 13 views
3

Ich entwickle eine quizbasierte App. Das Quiz enthält 1 Frage- und 4 Multiple-Choice-Antworten.Anzeigen von Nachrichten, wenn die Antwort richtig und falsch ist

Wenn der Benutzer eine der Optionen aus 4 auswählt, sollte eine richtige Antwort angezeigt werden, dann sollte etwas wie "Ihre Antworten ist richtig" angezeigt werden, ansonsten sollte "Ihre Antwort ist falsch" zusammen mit der richtigen Antwort angezeigt werden .

Und auch gibt es 2 Tasten (neben und zurück), eine für die nächste Frage, die andere, um zurückzugehen.

Kann mir jemand sagen, wie man den Code schreibt, um zur vorherigen Frage zurückzukehren?

ich so etwas getan haben:

private void getShuffledArray() 
    { 
     // TODO Auto-generated method stub 
     for (int i = 1; i <= SIZE; i++) 
     { 
      quizIndexList.add(i); 

     } 
     Collections.shuffle(quizIndexList); 
     Log.d("ERR", "List A shuffling" + quizIndexList); 

    } 

    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     switch (v.getId()) { 
     case R.id.button1: 
      Log.d("ERR", v.getTag().toString()); 
      if (v.getTag().toString().equalsIgnoreCase("right")) { 
       displayAnswer(); 


      } 

      break; 
     case R.id.button2: 
      Log.d("ERR", v.getTag().toString()); 
      if (v.getTag().toString().equalsIgnoreCase("right")) { 
       displayAnswer(); 
      } 
      break; 

     case R.id.button3: 
      Log.d("ERR", v.getTag().toString()); 
      if (v.getTag().toString().equalsIgnoreCase("right")) { 
       displayAnswer(); 
      } 
      break; 

     case R.id.button4: 
      Log.d("ERR", v.getTag().toString()); 
      if (v.getTag().toString().equalsIgnoreCase("right")) { 
       displayAnswer(); 
      } 
      break; 

     case R.id.btn_next: 
//   lyt_ans.setVisibility(View.GONE); 
//   lyt_quest.setVisibility(View.VISIBLE); 
      counter += 1; 
      if (counter >= SIZE) { 
       Collections.shuffle(quizIndexList); 
       counter = 0; 
      } 
      getInfoFromDB(quizIndexList.get(counter)); 
      reLoad(); 
      break; 

     case R.id.btn_bck: 
      btn_next.setOnClickListener(new OnClickListener() 
       { 

       public void onClick(View v) 
       { 
        // TODO Auto-generated method stub 

        finish(); 
       } 
       }); 

     } 

}

Jede Hilfe ist spürbar und danken Ihnen im Voraus.

Antwort

3

@Rithesh - nicht Ihren Code, sondern einfache Logik für diesen immer wie folgt Was Sie brauchen 1) Frage Array 2) Antworten Arraylist (Oder sagen zweidimensionale Array) so etwas wie ArrayList<ArrayList<String>> 3) Antwort-Index für jede Frage (Es sollte zu Frage Index 4) Eine Ansicht mit einem Textview (Um Frage anzuzeigen), RadioGroup, die 4 Radio Buttons bestehen, so dass es nur eine auswählen wird eine Zeit 5) Zwei Tasten nächste & vorherige 6) Hauptsache Hinzufügen setOnCheckedChangeListener zu Ihrer Radio-Gruppe wird es nur Feuer, wenn der Benutzer eine Antwort wählen, dann überprüfen, welche Radio-Taste aktiviert ist (für diese Tag des Radio-Button zu seiner Position setzen) also Frage nein ist 2 & Radio überprüft Position ist 3 dann nur einchecken Ihre Antwort-Array für die Antwort Nr. & Wenn es übereinstimmt, können Sie Toast & zeigen, wenn es nicht übereinstimmt, dann finden Sie die Antwort von Antworten Arraylist Antwort & zeigen Sie es in Toast oder durch Alarm. 7) jetzt bei der nächsten Taste ändern Textansicht Text zum nächsten Frage & Text Radio-Button Klicken Sie auf zum nächsten Satz Antwort & vice versa für vorherige Schaltfläche klicken

Dies ist logisch kippen Sie Code

Code Optionen einstellen

RadioButton option_rdb1 = (RadioButton) findViewById(R.id.option_rdb1); 
setOptions(0); 

// if you used ArrayList<ArrayList<String>> optionslist 
public void setOptions(int index){ 
if((index-1) <= optionsList.size()){ 
    ArrayList<String> temp = optionslist.get(index); 
    options_rdb1.setText(temp.get(0).toString(); 
    options_rdb1.setText(temp.get(0).toString(); 
    options_rdb1.setText(temp.get(0).toString(); 
    options_rdb1.setText(temp.get(0).toString(); 
    } 
} 

rufen Sie einfach setOptions im nächsten vorherigen mit dem Index der Frage. Ich habe index-1 als Arraylist mit 0 beginnen Also hängt es von Ihnen ab, wie Sie index verwenden. Auf diese Weise können Sie erste Optionen einstellen Auch in Ihrer Funktion, die Sie bei der nächsten Schaltfläche aufrufen werden, klicken Sie auf die obere Zeile des Codes, um

+0

_OK_ können Sie mir sagen, wie Sie die Optionen auf den _radio buttons_ ???? Ich habe es versucht, aber es gibt die Kraft in der Nähe App Fehler !!!!! – RMH

+0

Überprüfen Sie die aktualisierte Antwort –

0
  1. brauchen Sie nur einmal mischen (in oncreate zum Beispiel) und drücken nächsten oder zurück Sie sollten Frage Array erhöhen oder verringern Index
1

In Onclick der Schaltfläche btn_next legte einen int zurück

jetzt, bevor der Zähler Wechsel ..

prev=counter<--- store the counter value.. 
counter += 1; 
     if (counter >= SIZE) { 
      Collections.shuffle(quizIndexList); 
      counter = 0;} 

und in Onclick von btn_bck die vorherige Frage wie diese erhalten ..

 getInfoFromDB(quizIndexList.get(prev)); 
    reLoad(); 
+0

zu setzen, aber ich habe versucht es funktioniert nicht !!! – RMH

+0

was funktioniert nicht? erhalten Sie einen Fehler? – 5hssba

+0

nein es geht nicht zu _prev quest_ sich. Eigentlich ist Logik richtig !!!! – RMH