android - 动态复选框上的 onclicklistener 并检查复选框是否被选中
问题描述
我想申请onclicklistener
动态checkbox
并检查是否checkbox
是click
然后添加getid
,ArrayList
如果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
}
}
});
}
});
解决方案
有更简单的方法可用,您不必在单击时中继CheckBox
,CheckBox
要侦听检查更改状态,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());
}
});
推荐阅读
- c++ - 是否可以在 C++ 中创建一个文件并为其赋予属性以使其隐藏?(在 Ubuntu 上)
- javascript - Google MAPS JS API 未加载
- java - gson.JsonSyntaxException:java.lang.IllegalStateException:
- java - java 10 gradle项目:找不到自动模块
- git - 如何在不添加历史记录的情况下将 Git 分支标记为已合并(Git merge -s ours --squash)
- java - 如何一起使用@RequestBody 和@RequestParam
- django - if 语句在 for 循环中不起作用
- swift - 如何使用 swiftc 创建可导入的 Swift 库
- c# - 如何在二维数组中找到 indexOf 元素?
- django - Django rest 序列化 - 将 JSON 传递给 Javascript