动态复选框android

时间:2013-11-23 13:04:21

标签: java android c++ checkbox

我在表格布局中动态创建了复选框。我需要我的第一个复选框应该在开始时启用,其余的不应该启用,然后如果我点击我的第一个复选框第二个CB应该启用然后等等..

使用复选框创建表格。

TableLayout ll = (TableLayout) findViewById(R.id.tablelayout22);


final TableRow tr = new TableRow(this);                       
LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);

tr.setId(i);                  
tr.setLayoutParams(lp);
lp.setMargins(10, -10, 15, 5);

CheckBox feature1=new CheckBox(this);
feature1 = new CheckBox(this);
feature1.setId(i);

final TextView fin = new TextView(this);
fin.setLayoutParams(lp);
fin.setText(FinancialYear1);

tr.addView(feature1);
tr.addView(fin);

ll.addView(tr, new TableLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));

OncheckChangedListener

feature1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
        @Override
 public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    if (isChecked) {
        //......
    }                               
    else{


    //......
    }

1 个答案:

答案 0 :(得分:0)

如果您想将第一个CB设置为true,则必须添加以下cod:

boolean b = true;
feature1.setEnabled(b)

并且值b执行所有操作,

并且如果您首先登记OncheckChangedListener,则必须获得CB的身份证明并更改其他CB以及您想要做的所有事情

更新/////

你拥有所有的id,所以你必须把它保存在某个列表或数组中,当用户在for语句中点击一个CB时,你会做你想要的所有事情,我会为你写半代码:

 for ( int i = 0 ; i < list.size ; i++)
 {
  if (!list.get(i).equal (id))
  {
    Checkbox ch = findViewByid(list.get(i);
    /// do what you want to other checkbox 
  } 
  else
     /// do what you want with checked CB
 }
抱歉,因为我不在任何IDE附近测试我的代码,对不起代码错误,我希望这可以帮到你