Я запрограммировал приложение-викторину, и если я коснусь одного из ответов в AsyncTask, если ответ правильный, я установил цвет в зеленый цвет или если он будет ложным до красного.Отключить кнопки во время AsyncTask
Но теперь, во время выполнения AsyncTask, я могу нажать другие кнопки, например, кнопку «изменить вопрос» или на другой ответ. Затем это делается после завершения работы AsyncTask. Итак, следующий вопрос загружен, и он автоматически отвечает на следующий вопрос или использует одного из джокеров, что когда-либо.
Я попытался установитьEnabled (false) кнопки, но они все еще прослушиваются.
Как предотвратить это?
private void disableOrDisableButtons(boolean boo) {
buttonAnswer1.setEnabled(boo);
buttonAnswer2.setEnabled(boo);
buttonAnswer3.setEnabled(boo);
buttonAnswer4.setEnabled(boo);
}
и вот я начинаю AsyncTask
disableOrDisableButtons(false);
new PrepareAdapter().execute(null, null, null);
в моей AsyncTask
@Override
protected void onPreExecute() {
disableOrDisableButtons(false);
if (correctAnswerAtButton != buttonClicked) {
switch (buttonClicked) {
case 1:
buttonAnswer1.setTextColor(Color.RED);
break;
case 2:
buttonAnswer2.setTextColor(Color.RED);
break;
case 3:
buttonAnswer3.setTextColor(Color.RED);
break;
case 4:
buttonAnswer4.setTextColor(Color.RED);
break;
}
if (buttonClicked != 0) { // 0.. if second chance joker used
wrongAnswer = true;
}
}
switch (correctAnswerAtButton) {
case 1:
buttonAnswer1.setTextColor(Color.GREEN);
return;
case 2:
buttonAnswer2.setTextColor(Color.GREEN);
return;
case 3:
buttonAnswer3.setTextColor(Color.GREEN);
return;
case 4:
buttonAnswer4.setTextColor(Color.GREEN);
return;
}
}
Если это не какое-то учебное упражнение, прекратите использовать потоки. Это не приложение, которое должно быть многопоточным вообще, и это просто создает дополнительные проблемы для вас. –
так что я должен делать? спасибо за ваш ответ – androiddevjedi
Просто делайте все в главном потоке пользовательского интерфейса. Я предполагаю, что задействованная обработка довольно тривиальна, поэтому нет необходимости открывать поток пользовательского интерфейса. –