2011-12-20 64 views
-2

如果两者都属实,我希望它敬酒...但它将它们视为错误。这个短路(&&)应该可以工作,但不是

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

你的问题有点神秘......你能更好地解释一下自己吗? – 2011-12-20 06:57:15

+2

什么是你的dateTime如果它是编程推导它永远不会比System.currentTimeMillis() – ingsaurabh 2011-12-20 07:02:06

+3

@ingsaurabh,'long dateTime = System.currentTimeMillis()+ 24 * 60 * 60 * 1000L //明天这不是真的... – st0le 2011-12-20 07:09:45

回答

5

我建议打印出的值:

dateTime 
System.currentTimeMillis() 
chkBox.isChecked() 

if语句之前,因为我敢肯定的是,在很短的工具链大规模故障(编译器等的),&&在该声明中工作得很好。并在Toast行之前在if声明中打印某些内容。

因此我必须假设下列之一。

  1. dateTime大于System.currentTimeMillis() - 例如,如果dateTime是从当前时间在某一时刻分配则总是小于或等于在这之后,时钟修改和奇异当前时间来自存在黑洞的宇宙干扰尽管如此:-)

  2. chkBox.isChecked()正在返回错误。

  3. if工作好但Toast线没有做任何明显的/可见。

在这样的基本操作中,像Java和/或Android等有缺陷的工具链有缺陷的机会很少。

相关问题