【问题标题】:Android Checkbox enable and disableAndroid复选框启用和禁用
【发布时间】:2014-03-14 22:06:32
【问题描述】:

我有问题,

我有复选框,即 cb1、cb2、cb3、cb4。 我想,当我检查cb1时,cb2将被禁用,cb3,cb4保持启用,之后我再次检查cb3,然后cb4也将被禁用。

第一步效果很好,但是当我尝试检查 cb3 时,cb4 不会被禁用。 有我的代码

public void onCheckboxClicked(View v){

    CheckBox cb1= (CheckBox)findViewById(R.id.cb1);
    CheckBox cb2= (CheckBox)findViewById(R.id.cb2);
    CheckBox cb3= (CheckBox)findViewById(R.id.cb3);
    CheckBox cb4= (CheckBox)findViewById(R.id.cb4);


    switch (v.getId()) {
    case R.id.cb1:
        if (cb1.isChecked()) {
            cb2.setEnabled(false);

        }else {
            cb2.setEnabled(true);


        }

        break;

    //......

请帮帮我!!

更新问题:

我的意思是这样,我有10个复选框,当我检查其中一个时,然后可以检查的复选框数量变成5,然后当检查了这5个复选框之一时, 然后它会再次减少到 2 个可以被选中的复选框, 会这样直到没有更多的复选框可以被选中

【问题讨论】:

  • 我认为你需要使用单选按钮
  • “禁用”实际上是指“未选中”还是真正禁用,例如“不可点击”?如果是后者,请提供在检查cb3 时尝试禁用cb4 的代码。
  • 使用单选组按钮。
  • 根据您的更新:那么用户从“无法选中更多复选框”返回到 10 个复选框的程序是什么?
  • 程序是,在最后一个checkbox被选中变成unchecked的时候,它会让一个disable checkbox变回enable checkbox,当没有更多checkbox被选中时,10个checkbox都会被选中启用以选中

标签: android checkbox android-checkbox


【解决方案1】:

试着这样做

switch (v.getId()) {
case R.id.cb1:
    if (cb1.isChecked()) {
        cb2.setChecked(false);
    }else {
        cb2.setChecked(true);


    }

    break;

【讨论】:

  • 我的意思是,像这样,我有 10 个复选框,当我选中其中一个时,可以选中的复选框数量变为 5,然后当这 5 个复选框之一被选中,然后它会再次减少到2个复选框,可以选中,会这样直到没有更多的复选框可以选中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-07
相关资源
最近更新 更多