Android onclicklistener on Dynamic复选框并检查复选框是否已选中

Android onclicklistener on Dynamic复选框并检查复选框是否已选中,android,checkbox,dynamic,onclicklistener,Android,Checkbox,Dynamic,Onclicklistener,我想在动态复选框上应用onclicklistener 并检查复选框是否为单击,然后在ArrayList中添加getid,如果复选框未选中,则从ArrayList中删除getid for (int i = 0; i < array.length(); i++) { //getting product object from json array JSONObject product = array.getJSONObject(i); cb = new CheckBox(getAppli

我想在动态
复选框上应用
onclicklistener
并检查
复选框是否为
单击
,然后在
ArrayList
中添加
getid
,如果
复选框未选中,则从
ArrayList
中删除
getid

for (int i = 0; i < array.length(); i++) {
 //getting product object from json array
 JSONObject product = array.getJSONObject(i);
 cb = new CheckBox(getApplicationContext());
 cb.setText(product.getString("service_name"));
 cb.setId(product.getString("id"));
 cb.setTag(product.getString("id"));
 linearMain.addView(cb);
}


buttons.setOnClickListener(new View.OnClickListener() {
 @Override
 public void onClick(View v) {

  cb.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
    if (cb.isChecked()) {
     testoo.add(cb.getId());

    } else {
     testoo.remove(cb.getId()); //checkbox unchecked
    }
   }
  });

 }
});
for(int i=0;i
有一种更简单的方法可用,您不必在点击
复选框
复选框
时进行中继,就可以在
复选框
中检查更改状态,您可以设置如下所示的侦听器

cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked)
                testoo.add(cb.getId());
            else
                testoo.remove(cb.getId());
        }
    });