我正在使用System.currentTimemillis
制作一个计时器(10秒)。我在每秒刷新 10 次的方法中添加了以下代码:
Start 是 Activity 的开始时间,是在 onCreate 方法中“询问”的。
我知道 Integer.parseInt(Long.toString(y))
有效,因为当我这样做时 System.out.println(Integer.parseInt(Long.toString(y)));
code> 它会正确返回我的时间。
所以,我的问题是我不知道为什么开关不能正常工作。
long y=System.currentTimeMillis()-start;
switch (Integer.parseInt(Long.toString(y))) {
case 1000:
time.setText("3");
time.setAnimation(anim);
break;
case 2000:
time.setText("2");
time.setAnimation(anim);
break;
case 3000:
time.setText("1");
time.setAnimation(anim);
break;
case 4000:
time.setText("GOOO!");
time.setAnimation(anim);
count.setVisibility(View.VISIBLE);
cuenta = 0;
count.setText("0");
break;
case 5000:
time.setText("1");
time.setAnimation(anim);
break;
case 6000:
time.setText("2");
time.setAnimation(anim);
break;
case 7000:
time.setText("3");
time.setAnimation(anim);
break;
case 8000:
time.setText("4");
time.setAnimation(anim);
break;
case 9000:
time.setText("5");
time.setAnimation(anim);
break;
case 10000:
time.setText("Time!");
time.setAnimation(anim);
count.setVisibility(View.INVISIBLE);
break;
}
最佳答案
因为它不会准确地给出这些数字 1000,2000,3000...
如果数字多或少,则案例将失败
编辑:
试试这个
public static boolean isBetween(int x, int lower, int upper) {
return lower <= x && x <= upper;
}
if (isBetween(num, 0, 1000)) {
// do something
} else if (isBetween(num, 1001, 2000)) {
// do domething
}
...
...
关于java - 为什么我的开关不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15977069/