Android动态复选框问题

时间:2011-01-12 09:00:08

标签: android

我正在尝试为我的活动添加动态复选框。然而,作为一个初学者,我无法绕过能够添加复选框并删除它们的基础知识。这是我的代码......

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.我不知道如何制作每个复选框有自己的标识符,因为在这个问题之后,我将需要单独识别它们,因为我需要从数据库中添加文本,然后一旦用户检查了几个按钮,我将需要将其保存到单独的表中。非常困惑 !!!帮助!

1 个答案:

答案 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();
 }});