JAVA-Switch案例从不触发值
在发布之前,我没有发现类似的问题 我有一个简单的JavaJAVA-Switch案例从不触发值,java,android,switch-statement,case,runnable,Java,Android,Switch Statement,Case,Runnable,在发布之前,我没有发现类似的问题 我有一个简单的JavaRunnable,它获取一个int变量,将该值输出到一个对话框,然后将该变量减少1,并在显示下一个值之前执行1000ms的postdayed 当计数器为1时,Runnable在该对话框上显示“GO!” 当计数器为0时,Runnable必须使用removeCallbacksAndMessages(null)关闭对话框并停止自身 这是可运行的: private Runnable runnableCountdown = new Runnable(
Runnable
,它获取一个int变量
,将该值输出到一个对话框,然后将该变量减少1,并在显示下一个值之前执行1000ms的postdayed
当计数器为1
时,Runnable
在该对话框上显示“GO!”
当计数器为0
时,Runnable
必须使用removeCallbacksAndMessages(null)
关闭对话框并停止自身
这是可运行的:
private Runnable runnableCountdown = new Runnable() {
@Override
public void run() {
TextView tv_countdown = (TextView)dialog.findViewById(R.id.tv_countdown);
switch(count) {
case 0:
startChron();
stopCountdown();
break;
case 1:
tv_countdown.setText("GO!");
break;
default:
tv_countdown.setText(String.valueOf(count - 1));
countdown.postDelayed(this, 1000);
break;
}
count--;
}
};
问题出在开关中。。。case
:当变量的值为0
时,它从不执行case
因为它们从不在案例0
中输入,所以对话框从不关闭,下一个Runnable
也从不启动
我的开关盒缺少什么?调用runnableCountdown.postDelayed(这是1000);在你减少计数之后
private Runnable runnableCountdown = new Runnable() {
@Override
public void run() {
TextView tv_countdown = (TextView)dialog.findViewById(R.id.tv_countdown);
switch(count) {
case 0:
startChron();
stopCountdown();
break;
case 1:
tv_countdown.setText("GO!");
break;
default:
tv_countdown.setText(String.valueOf(count - 1));
break;
}
count--;
runnableCountdown.postDelayed(this, 1000);
}
};
这还不够,显示整个类。在
startChron()
和stopCountdown()中有什么?你怎么知道它从不进入0?需要更多的代码。。什么是初始计数值?非常欢迎。请接受我的答案作为正确答案。