IF条件不适用于Android CheckBox

时间:2015-08-28 09:04:21

标签: java android checkbox

if ((Problem != null && !notokcheckbox.isChecked()) || (Problem!=null && !ressolvedcheckbox.isChecked())) {
    Toast.makeText(getActivity(), "Enable Ok Or Not/Ok", 100000).show();
} else {    
    Toast.makeText(getActivity(), "Sucess", 100000).show();
}

我正在尝试应用验证我有两个复选框notokcheckboxressolvedcheckbox

if Problem != null且未选中notokcheckboxressolvedcheckbox,则应显示Enable Ok Or Not/Ok

if Problem != nullnotokcheckboxressolvedcheckbox已启用,则应打印Sucess

虽然我正在尝试使用单一复选框,但我的意思是它的工作正常,但两者都没有。

请告诉我如何申请两个复选框:

if (Problem != null && !notokcheckbox.isChecked()) {
    Toast.makeText(getActivity(), "Enable Ok Or Not/Ok", 100000).show();
} else {
    Toast.makeText(getActivity(), "Sucess", 100000).show();
}

工作正常。

请建议我如何解决它。

2 个答案:

答案 0 :(得分:0)

简化:

if (problem != null && (!notOkCheckBox.isChecked() || !ressolvedCheckBox.isChecked())  {
   ...
} else {
   ...
}

如果problem为空并且选中了两个(或两个)复选框之一,则下面的表达式为真。

P.S。注意变量的情况,你应该尊重java variable naming convention

答案 1 :(得分:0)

如果我理解正确,你想在未选中时显示“Enable Ok Or Not / Ok”文本,否则显示“Success”(当启用其中一个或两个时)。试试这个:

if (Problem != null && (!notokcheckbox.isChecked() && !ressolvedcheckbox.isChecked())) {
    Toast.makeText(getActivity(), "Enable Ok Or Not/Ok", 100000)
        .show();
} 
else {
    Toast.makeText(getActivity(), "Sucess", 100000)
        .show();
}

如果您的意思是它既不会显示“启用确定或不显示”文本,也不显示“启用确定或不启用”文本,如果只启用了一个,则显示“成功”,请尝试以下操作:

if (Problem != null && !(notokcheckbox.isChecked() ^ ressolvedcheckbox.isChecked())) {
    Toast.makeText(getActivity(), "Enable Ok Or Not/Ok", 100000)
        .show();
} 
else {
    Toast.makeText(getActivity(), "Sucess", 100000)
        .show();
}

或者更好的是,使用RadioButtons因此只能选择一个选项..