#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;
}
}
}