2012-04-14 10 views
0

In meinem Projekt habe ich eine Arraylist erstellt, um ausgewählte Kontrollkästchen Werte zu speichern. Wenn ein Kontrollkästchen ausgewählt ist, speichere ich den ID-Wert davon in der Arraylist und wenn es nicht ausgewählt ist, lösche ich das aus der Arraylist. Auch wenn auf dieser Seite kein Kontrollkästchen aktiviert oder deaktiviert ist, speichere ich "00" in der Arraylist. Die wenn und andere Bedingungen funktionieren gut in meinem Code, aber die * sonst Teil funktioniert nicht .. * Wo ging ich schief? Bitte helfen Sie mir dies in Bezug auf ....Wie speichert man den leeren Wert in Arraylist in Android?

Mein 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

der else Teil ist nicht erreichbar ... die Box ist entweder markiert oder nicht, es gibt keine "sonst" –

+0

dann wenn nichts ausgewählt ist dann wie kann ich einen Wert standardmäßig speichern? – RaagaSudha

Antwort

1

Der sonst Fall wird nie da eine Checkbox eingegeben werden entweder geprüft oder nicht geprüft.

Der onclick-Listener wird erst aufgerufen, wenn Sie auf das Kontrollkästchen klicken.

Ich bin mir nicht ganz sicher, was Sie erreichen möchten, aber Sie möchten vielleicht nur markierte Checkboxen zu einer Liste von überprüften Elementen hinzufügen.

0

Checkboxen können nur überprüft oder nicht überprüft werden, die else-Anweisung ist in Ihrem Codebeispiel nicht erreichbar.

Verwenden Sie die OnCheckedChangeListener statt auf Klick:

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

Dann, wenn "Absenden" Ihre Checkbox tun, um diese Kontrolle in der Schleife, um zu sehen, wenn der Benutzer das Feld nicht ausgewählt hat

if (Checkbox!. isChecked()) selchkboxlist.add ("00");

Verwandte Themen