这是应用程序代码的一部分:
String isNormal = recvMessage[0];
ImageView imageView = findViewById(R.id.status_normal);
switch (isNormal) {
case "0":
imageView.setImageResource(R.drawable.mygreen);
break;
case "1":
countSec();
int t = timer_sec[0];
if (t > 5) {
imageView.setImageResource(R.drawable.myred);
} else {
imageView.setImageResource(R.drawable.mygreen);
}
break;
default:
imageView.setImageResource(R.drawable.mywhite);
Toast.makeText(MainActivity.this, "enter 0 or 1", Toast.LENGTH_SHORT).show();
break;
}
}
countSec();是计时器功能,timer_sec [0]是其结果。 t是秒。我想在图像更改为“myred”时重置此功能。如何阻止这个?
答案 0 :(得分:0)
我从这个问题中理解的是你在countSec()中启动一个计时器;然后在那里更改timer_sec [0]中的值。 问题是代码运行得很快并且在count_sec [0]变为> 5之前进入timer_sec [0]。我的建议是这样做:
case "1":
imageView.postDelayed(new Runnable() {
@Override
public void run() {
imageView.setImageResource(R.drawable.myred);
}
}, 5000);
imageView.setImageResource(R.drawable.mygreen);
break;