2012-04-05 4 views
3

Je développe une application basée sur le quiz. Le quiz contient 1 question et 4 réponses à choix multiple. Lorsque l'utilisateur sélectionne l'une des options sur 4, s'il s'agit d'une bonne réponse, alors quelque chose comme "Vos réponses sont correctes" doit être affiché, sinon "Votre réponse est fausse" doit être affichée avec la bonne réponse .Affichage des messages lorsque la réponse est bonne ou fausse

Et aussi il y a 2 boutons (suivant et arrière), un pour aller à la question suivante, l'autre pour revenir en arrière. Est-ce que quelqu'un peut me dire comment écrire le code pour revenir à la question précédente?

Je l'ai fait quelque chose comme ceci:

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(); 
       } 
       }); 

     } 

}

Toute aide est appréciable et merci à l'avance.

Répondre

3

@Rithesh - Ne pas obtenir votre code mais la logique simple pour cela comme suit Qu'est-ce que vous avez besoin 1) Question tableau 2) Réponses Arraylist (Ou dire 2) tableau quelque chose comme ArrayList<ArrayList<String>> 3) Index de réponse pour chaque question (Il devrait correspondre à l'index de question 4) Une vue avec un textview (pour montrer la question), RadioGroup qui composent 4 boutons de radio de sorte qu'il choisira seulement un à une fois 5) Deux boutons suivant & précédent 6) Main thing Ajouter setOnCheckedChangeListener à votre groupe de radio il se déclenchera seulement quand l'utilisateur choisira n'importe quelle réponse puis vérifiera quel bouton radio est vérifié (pour cette étiquette de bouton radio à sa position) ainsi supposons que la question non est 2 & position radio vérifiée est 3 alors juste check in votre tableau de réponse pour la réponse non & s'il correspond, vous pouvez montrer le toast & si ce n'est pas le cas, puis trouver une réponse écrite à partir de Réponses arraylist & le montrer en toast ou par alerte. 7) maintenant lorsque vous cliquez sur suivant bouton Modifier Voir le texte du texte au texte de la question suivante & bouton radio pour la prochaine série de réponse & vice versa pour le bouton précédent cliquez

Ceci est cant logique vous fournir le code

Code pour définir les options

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(); 
    } 
} 

Appelez setOptions dans le précédent précédent avec l'index de question. J'ai utilisé index-1 comme arraylist start avec 0 Donc cela dépend de vous comment vous utilisez index. De cette façon, vous pouvez définir les premières options Aussi dans votre fonction que vous appelez sur le bouton suivant, cliquez sur la ligne de code ci-dessus pour définir

+0

_OK_ pouvez-vous me dire comment régler les options sur les _radio buttons_ ???? Je l'ai essayé mais il donne la force fermer l'erreur de l'application !!!!! – RMH

+0

Vérifiez la réponse mise à jour –

0
  1. vous devez mélanger une seule fois (en oncreate par exemple) et en appuyant sur suivant ou en arrière, vous devez augmenter ou de l'indice de décrémentation du tableau question
1

En onclick du bouton btn_next mettre un int prev

maintenant avant de changer contre ..

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

et onclick de btn_bck obtenir la question prev comme ça ..

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

mais je l'ai essayé ne fonctionne pas !!! – RMH

+0

Qu'est-ce qui ne fonctionne pas? obtenez-vous une erreur? – 5hssba

+0

ne va pas à _prev quest_ lui-même. En fait la logique est correcte !!!! – RMH

Questions connexes