选中复选框时创建开关

时间:2015-09-17 00:21:53

标签: android checkbox

所以当我在应用UI中检查一个复选框时,我试图让它禁用或启用bool,如下所示

/** called when the user clicks the enable checkbox field for enabling Subtraction Problems **/
public void BoolSubProb(View view) {
    if(SubProb = false) {
        SubProb = true;
    }
    else if(SubProb = true) {
        SubProb = false;
    }
}

但是,我似乎无法得到它只会在其错误时启用bool或在用户选中复选框时禁用bool时为true。 它只是通过循环,最终再次变为虚假。

1 个答案:

答案 0 :(得分:0)

您需要获取一个应该以XML格式定义的复选框实例。然后,向其添加一个OnCheckedChangeListener。

示例代码:

CheckBox mCheckbox = (CheckBox) findViewById(R.id.yourCheckboxInXML);
mCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

    @Override
    public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
        if (b) {
            //do something if it's checked
        } else {
            //do something if it's not checked
        }
    }
});

此外,在比较布尔值时请提出建议:不要使用单个等号...使用double。

//Incorrect
if (myBoolean = true)

//Correct
if (myBoolean == true)

编辑:如果您正在使用片段,请确保在findViewById()方法调用之前调用getView()。

代码:

CheckBox mCheckbox = (CheckBox) getView().findViewById(R.id.yourCheckboxInXML);
mCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

    @Override
    public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
        if (b) {
            //do something if it's checked
        } else {
            //do something if it's not checked
        }
    }
});