2012-02-27 2 views
0

Je travaille sur quiz l'application. Pour chaque question il ya réponses multiples et ainsi pour cela j'ai utilisé cases à cocher. Dans chaque page J'affiche une seule question avec les options et quand le bouton suivant est cliqué la question suivante sera affichée. Ainsi, lorsque plusieurs réponses sont sélectionnées par l'utilisateur, je dois les stocker dans une liste et j'ai besoin de comparer les réponses sélectionnées avec celles de la base de données. Dans mon code, je stocke les identifiants de valeur sélectionnés un par un, mais à la fois il n'enregistre qu'une seule valeur. Comment stocker tous les identifiants de case à cocher sélectionnés dans mon arraylist?Comment stocker les valeurs de case à cocher sélectionnées dans arraylist dans android?

Mon code:

ArrayList<String> selchkboxlist; 
CheckBox[] cbs; 
cbs = new CheckBox[20]; 
for(k=0; k<List3.size(); k++) 
{ 
    arr = List3.get(k); 
    cbs[k] = new CheckBox(getContext()); 
    Rl.addView(cbs[k]); 
     cbs[k].setText((CharSequence) arr.get(2)); 
     cbs[k].setTextColor(Color.parseColor("#000000")); 
     cbs[k].setId(k); 
     cbs[k].setOnClickListener(new View.OnClickListener() 
     { 
      public void onClick(View v) 
      { 
       CheckBox cb = (CheckBox) v ; 
      if (((CheckBox) v).isChecked()) { 
       chk = Integer.toString(v.getId()); 
        selchkboxlist = new ArrayList<String>(); 
        selchkboxlist.add(chk); 
        Toast.makeText(Select1.this, "Selected CheckBox ID" + v.getId(), Toast.LENGTH_SHORT).show(); 
      } else { 
       selchkboxlist.remove(chk); 
       Toast.makeText(Select1.this, "Not selected", Toast.LENGTH_SHORT).show(); 
       } 
     } 
    }); 
} 

S'il vous plaît aider moi au sujet de ce .... Merci à l'avance

+1

Peut-être parce que vous sont en train de créer une nouvelle arborescence à chaque fois ... Je vois un "selchkboxlist = new ArrayList ()" dans une boucle for ... –

+0

salut merci son fonctionnement bien – RaagaSudha

+0

qu'est-ce que List3.size() s'il vous plaît partager le code encore .. ou éditez votre question .. merci –

Répondre

1

Initialisez le selchkboxlist avant boucle ....

ArrayList<String> selchkboxlist=new ArrayList<String>(); 
CheckBox[] cbs; 
cbs = new CheckBox[20]; 
for(k=0; k<List3.size(); k++) 
{ 
arr = List3.get(k); 
cbs[k] = new CheckBox(getContext()); 
Rl.addView(cbs[k]); 
    cbs[k].setText((CharSequence) arr.get(2)); 
    cbs[k].setTextColor(Color.parseColor("#000000")); 
    cbs[k].setId(k); 
    cbs[k].setOnClickListener(new View.OnClickListener() 
    { 
     public void onClick(View v) 
     { 
      CheckBox cb = (CheckBox) v ; 
     if (((CheckBox) v).isChecked()) { 
      chk = Integer.toString(v.getId()); 
       selchkboxlist.add(chk); 
       Toast.makeText(Select1.this, "Selected CheckBox ID" + v.getId(), Toast.LENGTH_SHORT).show(); 
     } else { 
      selchkboxlist.remove(chk); 
      Toast.makeText(Select1.this, "Not selected", Toast.LENGTH_SHORT).show(); 
      } 
    } 
}); 

}

+0

Salut merci son fonctionnement bien ... Mais quand j'essaye d'imprimer mon arraylist à l'extérieur de mon onclicklistener il est l'affichage null ... où je vais mal? – RaagaSudha

+0

Mettez un logger Log.i ("chk", chk) juste avant votre déclaration qui ajoute ceci à ArrayList, voir si cette valeur est nulle ou non ... –

+0

Salut dans la méthode onclick il affiche les valeurs arraylist mais quand i J'essaie d'imprimer en dehors de la méthode onclicklistener une liste vide est affichée. Pourquoi est-ce vrai? – RaagaSudha

0

stocker la valeur dans sharedPreferences et lorsque vous avez besoin de récupérer à nouveau de sharedPreferences et faire votre tâche.

je l'ai fait dans mon dernier projet et son travail ... essayez l'homme ..

Questions connexes