繁体   English   中英

make if if只检查一个命令

[英]make if checks only one command

我有一个ViewFlipper和一个下一个按钮,我希望按钮在检查并执行一个命令后停止我希望它停止检查其余的按钮,除非我再次点击它

我的代码:

    Next.setOnClickListener(new View.OnClickListener() {
            ViewFlipper flipp = (ViewFlipper) findViewById(R.id.flipp);
        @Override
        public void onClick(View view) {

            if(flipp.getDisplayedChild() == 0){if(qOne.isChecked()) {CorrectToast();}else{WrongToast();}} 
            if(flipp.getDisplayedChild() == 1){if(qTwo.isChecked()){CorrectToast();}else{WrongToast();}}
            if(flipp.getDisplayedChild() == 2){if(qThree.isChecked()){CorrectToast();}else{WrongToast();}}
            if(flipp.getDisplayedChild() == 3){if(qFour.isChecked()){CorrectToast();}else{WrongToast();}}
        }
    });

请改用switch语句:

Next.setOnClickListener(new View.OnClickListener() {
        ViewFlipper flipp = (ViewFlipper) findViewById(R.id.flipp);
    @Override
    public void onClick(View view) {
        switch(flipp.getDisplayedChild()) {
            case 0: if(qOne.isChecked()) {CorrectToast();}else{WrongToast();} break; 
            case 1: if(qTwo.isChecked()) {CorrectToast();}else{WrongToast();} break;
            case 2: if(qThree.isChecked()) {CorrectToast();}else{WrongToast();} break;
            case 3: if(qFour.isChecked()) {CorrectToast();}else{WrongToast();} break;
            default: break; //do default action,
        }
    }  

使用if () else if ()构造

您可以像这样使用if() { } else if() { }语句

    Next.setOnClickListener(new View.OnClickListener() {
            ViewFlipper flipp = (ViewFlipper) findViewById(R.id.flipp);
        @Override
        public void onClick(View view) {

            if(flipp.getDisplayedChild() == 0){if(qOne.isChecked()) {CorrectToast();}else{WrongToast();}} 
            else if(flipp.getDisplayedChild() == 1){if(qTwo.isChecked()){CorrectToast();}else{WrongToast();}}
            else if(flipp.getDisplayedChild() == 2){if(qThree.isChecked()){CorrectToast();}else{WrongToast();}}
            else if(flipp.getDisplayedChild() == 3){if(qFour.isChecked()){CorrectToast();}else{WrongToast();}}
        }
    });

swith声明没问题,但我建议这样做。 它更具可读性,你可以添加更少的文章和混乱的对象。

public void onClick(View view) {
    CheckedObject[] objectsToCheck = new CheckedObject[]{qOne,qTwo,qThree,qFour};
    int index = flipp.getDisplayedChild();
    if (objectsToCheck[index].isChecked())
    {
         CorrectToast();
    }
    else 
    {
         WrongToast();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM