我在表格布局中动态创建了复选框。我需要我的第一个复选框应该在开始时启用,其余的不应该启用,然后如果我点击我的第一个复选框第二个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{
//......
}
答案 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附近测试我的代码,对不起代码错误,我希望这可以帮到你