Убедитесь, что нажата каждая кнопка

#java #button #click #verify

#java #кнопка #нажмите #проверьте

Вопрос:

При нажатии кнопки в столбце A отображаются либо «0», либо «1». Я хотел бы убедиться, что все кнопки нажаты с помощью кнопки отправки. Однако мой код работает, если первая кнопка в столбце содержит значение, то следующие кнопки не проверяются.

     if (id==R.id.Submit){
        for(int i=0; i<colA.length; ){
            if (((colA[i].getText()==("0"))) || ((colA[i].getText()==("1")))){

                break;
            }
            else{
                System.out.println("Please enter all values for Column A.");
                break;
            }
        }
    }
 

Ответ №1:

Вы можете создать счетчик, подобный этому, чтобы подсчитать количество нажатых кнопок и сопоставить его с общим количеством кнопок, которые нужно нажать в столбце

 if (id==R.id.Submit){
int counter=0;
    for(int i=0; i<colA.length; i   ){
        if (((colA[i].getText()==("0"))) || ((colA[i].getText()==("1")))){
          counter  ;
        }

    }

  if(counter==colA.length){
           //all have been clicked

        }
else{
  System.out.println("Please enter all values for Column A.");

 }
}
 

Комментарии:

1. Я понимаю, что вы имеете в виду. Большое вам спасибо!

Ответ №2:

Проблема в том, что вы break выходите из for цикла, несмотря ни на что. В том if , что вы хотите сделать, это continue вместо break . Этот оператор завершит текущую итерацию в for цикле и перейдет к следующей итерации, тогда break как завершает цикл полностью.

 if (id==R.id.Submit){
    for(int i=0; i<colA.length; ){
        if (((colA[i].getText()==("0"))) || ((colA[i].getText()==("1")))){
            continue;
        }
        else{
            System.out.println("Please enter all values for Column A.");
            break;
        }
    }
}