Это короткое замыкание (&&) должно работать, но что-то не так - PullRequest
0 голосов
/ 20 декабря 2011

Когда оба они верны, я хочу, чтобы они выпили за тост ... но они считают их ложными.

if (dateTime > System.currentTimeMillis() && chkBox.isChecked()){
                     Toast.makeText(getBaseContext(), "BEFORE", Toast.LENGTH_SHORT).show();
                     return;
    };

1 Ответ

5 голосов
/ 20 декабря 2011

Я бы предложил распечатать значения:

dateTime
System.currentTimeMillis()
chkBox.isChecked()

перед оператором if, потому что я вполне уверен, что, за исключением крупного сбоя в вашей цепочке инструментов (компилятор и т. Д.)), && прекрасно работает в этом утверждении.А также печатать что-то внутри оператора if перед строкой Toast.

Поэтому я должен предположить одно из следующего:

  1. dateTime is не больше System.currentTimeMillis() - например, если dateTime назначается из текущего времени в какой-то момент, то оно всегда будет меньше или равно текущему времени после этого, изменениям часов и странным космологическим помехамнесмотря на наличие черных дыр: -)

  2. chkBox.isChecked() возвращает false.

  3. The if работает нормально, но строка Toast не делает ничего очевидного / видимого.

Возможности хорошо используемой цепочки инструментов, такой как Java и / илидефекты Android при такой базовой операции невелики.

...