我正在尝试为我的活动添加动态复选框。然而,作为一个初学者,我无法绕过能够添加复选框并删除它们的基础知识。这是我的代码......
private void createCheckbox(){
for(int i=0; i<5; i++){
cb = new CheckBox(this);
ll.addView(cb);
cb.setText("Test");
}
ll.addView(submit);
submit.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
for(int i = 0; i < 5; i++) {
ll.removeView(cb);
}
ll.removeView(submit);
Questions();
}});
} ll是linerlayout对象。想法是代码运行时,出现5个复选框,然后一旦用户点击提交按钮,它们就会被删除。目前正在看到这些框,但是当按下提交按钮时,只有五个中的一个被删除。我不明白我做错了什么?
这个想法是复选框将根据数据库的值创建,这个值可能会改变这就是为什么没有预定义复选框,因为可能有4,5或15.我不知道如何制作每个复选框有自己的标识符,因为在这个问题之后,我将需要单独识别它们,因为我需要从数据库中添加文本,然后一旦用户检查了几个按钮,我将需要将其保存到单独的表中。非常困惑 !!!帮助!
答案 0 :(得分:4)
您需要在某处存储对这些复选框的引用,但不能重用相同的变量。
CheckBox[] cbs = new CheckBox[5];
for(int i=0; i<5; i++){
cbs[i] = new CheckBox(this);
ll.addView(cb);
cbs.setText("Test");
}
ll.addView(submit);
submit.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
for(int i = 0; i < 5; i++) {
ll.removeView(cbs[i]);
}
ll.removeView(submit);
Questions();
}});