Отключить кнопку при действии, после того, как пользователь взаимодействует с кнопками

У меня проблемы с отключением кнопок для конкретного вопроса в моем массиве mQuestionsBank. Я создал логический массив mQuestionsAnseled с размером массива mQuestionsBank, чтобы отслеживать вопросы, на которые были даны ответы. Теперь, когда пользователь взаимодействует с кнопкой «True» или «False», mQuestionsAnsarded [mCurrentIndex] получает значение true, поэтому обе кнопки отключаются независимо от того, верны они или нет. Вот мой код

Способ включения изображения кнопок

Метод проверки изображения ответа

Кнопка True и False на изображенииClickListeners

Пожалуйста, разместите свой код прямо в теле вашего вопроса.

Talendar 25.09.2018 05:37
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
1
69
2

Ответы 2

Это код с вашего первого изображения:

private void buttonEnabler(){
    if (...) {
        ...
    } else
        mTrueButton.setEnabled(true);
        mFalseButton.setEnabled(true);
}

Вам не хватает скобок на корпусе else. Это означает, что этот код «действительно» выглядит так:

private void buttonEnabler(){
    if (...) {
        ...
    } else
        mTrueButton.setEnabled(true);
    }

    mFalseButton.setEnabled(true);
}

Другими словами, mFalseButton всегда будет включен, даже если вы этого не хотите. Чтобы исправить это, добавьте скобки, окружающие строки else:

private void buttonEnabler(){
    if (...) {
        ...
    } else {
        mTrueButton.setEnabled(true);
        mFalseButton.setEnabled(true);
    }
}

В вашем методе buttonEnable есть ошибка if else

Всегда используйте else со скобками {}, если только выполняемый оператор не является одним, как показано ниже ...

if (true)
    say 'hello
else
    be quiet

Или

if (true) {
    say 'hello'
    say 'how may I help you're
 } else {
    say statement 3
    say statement 4
 }

Другие вопросы по теме