首页 > 解决方案 > 动态复选框上的 onclicklistener 并检查复选框是否被选中

问题描述

我想申请onclicklistener动态checkbox
并检查是否checkboxclick 然后添加getidArrayList如果checkbox未选中则getid删除ArrayList

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
    }
   }
  });

 }
});

标签: androidcheckboxdynamiconclicklistener

解决方案


有更简单的方法可用,您不必在单击时中继CheckBoxCheckBox要侦听检查更改状态,CheckBox您可以设置如下所示的侦听器。

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

推荐阅读