2012-04-14 5 views
0

Dans mon projet, j'ai créé un arraylist pour stocker les valeurs des cases à cocher sélectionnées. i.e Si une case à cocher est sélectionnée, j'enregistre la valeur de l'ID dans l'arrayliste et si elle n'est pas sélectionnée, je la supprime de l'arraylist. En outre, si aucune case n'est cochée ou désélectionnée dans cette page, je stocke "00" dans l'arborescence. Le si et sinon les conditions fonctionnent correctement dans mon code mais le * d'autre part ne fonctionne pas .. * Où je me suis trompé? S'il vous plaît aidez-moi au sujet de cette ....Comment stocker la valeur vide dans arraylist dans android?

Mon code:

public static ArrayList<String> selchkboxlist = new ArrayList<String>(); 

cbs[k].setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     if (((CheckBox) v).isChecked()) { 
      selchkboxlist.add(Integer.toString(v.getId())); 
      System.out.println("chkboxlist size" + selchkboxlist.size()); 
      System.out.println("selected checkboxes" + selchkboxlist); 
     } 
     else if(!(((CheckBox) v).isChecked())) 
     { 
      selchkboxlist.remove(Integer.toString(v 
        .getId())); 
      System.out.println("after delete chkboxlist size" + selchkboxlist.size()); 
      System.out.println("un selected checkboxes" + selchkboxlist); 
     } 
     else 
     { 
      selchkboxlist.add("00"); 
      System.out.println("nothing selected selected checkboxes" 
        + selchkboxlist); 
     } 
    } 
}); 
+2

la partie else n'est pas accessible ... la case est cochée ou non, il n'y a pas d'autre –

+0

alors si rien n'est sélectionné alors comment puis-je sauvegarder une valeur par défaut? – RaagaSudha

Répondre

1

Le cas d'autre ne sera jamais entré depuis une case à cocher est soit cochée ou non cochée.

L'écouteur onclick n'est pas appelé tant que vous n'avez pas coché la case.

Je ne suis pas entièrement sûr de ce que vous voulez accomplir, mais vous pouvez ajouter uniquement des cases cochées à une liste d'éléments sélectionnés.

0

Les cases à cocher ne peuvent être cochées ou cochées, l'instruction else est inaccessible dans votre exemple de code.

Utilisez le OnCheckedChangeListener au lieu de clic:

selchkboxlist.setOnCheckedChangeListener(new OnCheckedChangeListener() 
{ 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
    { 
     if (isChecked) 
     { 
      //user checked checkbox 
     }else{ 
      //user unchecked checkbox 
     } 
    } 
}); 

Puis, quand « soumettre » votre case à cocher cette vérification dans votre boucle pour voir si l'utilisateur n'a pas coché la case

si (case à cocher!. isChecked()) selchkboxlist.add ("00");

Questions connexes