使用<radiogroup>将所有<radiobutton>设置为false

时间:2018-11-01 18:23:57

标签: android

我想知道是否可以使用RadioGroup将所有RadioButtons设置为指定值。就我而言,我有这个:

public void displayFalse(View view) {

    if(view.getId() == R.id.btnPrimers)

        for (int i = 0; i < rgPrimer.getChildCount(); i++) {
            rgSegon.getChildAt(i).setEnabled(false);
            //something like: .setChecked(false);

    }else if(view.getId() == R.id.btnSegons){

        for (int i = 0; i < rgSegon.getChildCount(); i++) {
            rgSegon.getChildAt(i).setEnabled(false);
        }
    }else if(view.getId() == R.id.btnSegons) {

        for (int i = 0; i < rgPostre.getChildCount(); i++) {
            rgPostre.getChildAt(i).setEnabled(false);
        }
    } else {

    }

}

因此,我有一个不同的<LinearLayout>,其中每个按钮都可以通过按钮看到。因此,如果已选择按钮,则将显示布局,内部的所有radioGroup也将显示。所以在这里,我检查选择的按钮,然后进入该布局中的radioGroup,并将它们设置为false。

我也尝试过:

public void displayFalse(View view) {

    if(view.getId() == R.id.btnPrimers){

        rbPrimer1.setChecked(false);
        rbPrimer2.setChecked(false);
        rbPrimer3.setChecked(false);
        rbPrimer4.setChecked(false);

    }else if(view.getId() == R.id.btnSegons){

        rbSegon1.setChecked(false);
        rbSegon2.setChecked(false);
        rbSegon3.setChecked(false);
        rbSegon4.setChecked(false);

    }else if(view.getId() == R.id.btnSegons) {

        rbPostre1.setChecked(false);
        rbPostre2.setChecked(false);
        rbPostre3.setChecked(false);
        rbPostre4.setChecked(false);

    } else {

    }

但这既不起作用。如何解决该问题,并且有改进的版本吗?

2 个答案:

答案 0 :(得分:2)

RadioGroup有一个方法:

clearCheck()

它完全满足您的要求:

public void displayFalse(View view) {

    if (view.getId() == R.id.btnPrimers)
        rgSegon.clearCheck(); //is this the right RadioGroup?
    } else if (view.getId() == R.id.btnSegons) {
        rgSegon.clearCheck();
    } else if (view.getId() == R.id.btnSegons) { //is this the right ID?
        rgPostre.clearCheck();
    }

}

答案 1 :(得分:1)

尝试一下:

RadioGroup radioGroup = (RadioGroup)findViewById(R.id.radiogroup);radioGroup.clearCheck();