zeeshan dar
zeeshan dar

Reputation: 89

Check which checkbox is checked/Unchecked in android

I am creating checkboxes at runtime but i don't know how to find that which checkbox is checked and which is unchecked?This is the code.

for (String s : options)
{
   chk = new CheckBox(this);
   System.out.println(s);
   chk.setId(i++);
   chk.setText(s);  
   selected=s;
   chk.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (((CheckBox) v).isChecked())
     DisplayToast(selected);
else
     DisplayToast(selected);
}
});
lm.addView(chk);
}

Upvotes: 1

Views: 7189

Answers (2)

user370305
user370305

Reputation: 109237

You can get the id of CheckBox using getId() method ..

CheckBox checkBox = ((CheckBox) v);

if (checkBox.isChecked())
{
    int checkBoxId = checkBox.getId(); // It will give you checked checkbox id..
    DisplayToast(selected);
}
else
     DisplayToast(selected);

Update:

To get all CheckBox states you have to iterate thru ChildViews of lm layout.

Something like,

for (int i = 0; i < lm.getChildCount(); i++) {
    View v = lm.getChildAt(i);
    if (v instanceof CheckBox) {
      if (((CheckBox) v).isChecked())
      // Check Checkbox
      else
      // Unchecked Checkbox
    } 
}

Note: I would suggest you can use onCheckedChangeListener instead of View.OnClickListener() to check - uncheck event of CheckBox. (But it is optional, it also works with OnClickListener)

Upvotes: 3

romtsn
romtsn

Reputation: 11982

You should use onCheckedChangeListener to define whether your checkbox checked:

chk.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if (isChecked) {
            //checked
        } else {
            //not checked
        }
    }
});

Upvotes: 3

Related Questions