2010-11-04 8 views
0

J'ai un rapport qui se compose de 5 questions (il peut y avoir seulement une réponse ou réponse multiple choix). Les questions sont différentes pour chaque rapport. Donc, chaque fois que je génère des questions et réponses comme RadioButtons (une réponse) ou CheckBoxes (réponse à choix multiples) ... Mais maintenant je ne sais vraiment pas comment enregistrer ces réponses (je voudrais enregistrer comme _question_id, _answer_id) .Obtenir des informations à partir RadioButtons et cases à cocher

Comment puis-je attribuer une bonne _answer_id, à _question_id ...

Merci pour l'aide à l'avance

Répondre

0

Essayez quelque chose comme ceci:

public void saveAnswers() { 
    LinearLayout root = (LinearLayout) findViewById(R.id.frame); //or whatever your root control is 
    loopQuestions(root); 
} 

private void loopQuestions(ViewGroup parent) { 
    for(int i = 0; i < parent.getChildCount(); i++) { 
     View child = parent.getChildAt(i); 
     if(child instanceof RadioGroup) { 
      //Support for RadioGroups 
      RadioGroup radio = (RadioGroup)child; 
      storeAnswer(radio.getId(), radio.getCheckedRadioButtonId()); 
     } 
     else if(child instanceof CheckBox) { 
      //Support for checkboxes 
      CheckBox cb = (CheckBox)child; 
      int answer = cb.isChecked() ? 1 : 0; 
      storeAnswer(cb.getId(), answer); 
     } 
     else { 
      //Support for other controls 
     } 

     if(child instanceof ViewGroup) { 
      //Nested Q&A 
      ViewGroup group = (ViewGroup)child; 
      loopQuestions(group); 
     } 
    } 
} 

private void storeAnswer(int question, int answer) { 
    //TODO: Store your answer to disk 
} 
+0

merci beaucoup, je l'ai fait équiv par moi-même ... Je stocke des informations <_question_ID, _answer_ID> dans la collection Map lorsque je clique sur RadioButton ou que je coche CheckBox (lorsque la case à cocher est supprimée de Map) ... Lorsque vous cliquez sur saveAnwers, Map est sauvegardé dans DB –

0

Je suppose que vous utilisez RadioGroup pour un groupe de RadioButtons mutuellement exclusifs? Puis:

radioGroup.getCheckedRadioButtonId() // gets Id of clicked RadioButton within group 

pour CheckBox vous devez vérifier pour chaque bouton:

checkBox.isChecked() 
Questions connexes