【发布时间】:2014-09-18 21:58:16
【问题描述】:
我正在制作简单的测验应用程序,现在等待出现问题。 当用户点击四个可能的答案之一时,它应该变为橙色,两秒钟后变为红色或绿色(正确或错误答案)。这是我的代码的一部分:
public void clickButton(View v) {
changeButton(v, getResources().getDrawable(R.drawable.btn_orange));
try {
//Thread.sleep(2000);
TimeUnit.SECONDS.sleep(2);
} catch ( InterruptedException r ) {}
changeButton(v, getResources().getDrawable(R.drawable.btn_red));
}
我尝试过线程睡眠或时间单元睡眠,但在这两种情况下,按钮都会变为默认的白色“点击”阶段,并在两秒后变为红色 - 完全跳过橙色部分。我检查了其他颜色,所以在那些颜色 xml 文件中这绝对不是问题。问题可能出在那个睡眠的某个地方,但我不知道我应该用什么来延迟红色并且仍然是橙色。 谢谢建议
【问题讨论】:
-
你不应该睡在主线程上,看看 View.postDelayed()
-
实际上你不能在 UI 线程上休眠。