基本上,我有一个倒数计时器吗?我需要在文本中显示计时器剩余的时间。我已经这样做了,但计时器的时间有点偏,因为它需要将剩下的秒数转换成小时和分钟,就像常规的数字手表那样,它说00:05:00并且它倒计时到00:04: 59。我今天做了很多事情,现在我的脑袋受到了很大的伤害,所以我无法想到它。所以我的猜测是我需要使用60的倍数。帮助?
代码:
int timeinminutes=1;
new CountDownTimer(timeinminutes*100000, 1000) {
TextView mTextField = (TextView) findViewById(R.id.textView1);
public void onTick(long millisUntilFinished) {
long hrs=0;
long mnts=0;
long scnds=0;
scnds=(millisUntilFinished/1000);
if (scnds>59) {
mnts=(scnds/60);
if (mnts!=Math.floor(mnts)) {
mnts=0;
}
}
if (mnts>59) {
hrs=(mnts/60);
if (hrs!=Math.floor(hrs)) {
hrs=0;
}
}
mTextField.setText(hrs + ":" + mnts + ":" + scnds);
}
public void onFinish() {
mTextField.setText("00:00:00");
}
}.start();
答案 0 :(得分:0)
其中很多事情已经完成。如果您阅读SimpleDateFormat,那么它可以帮助您解决问题。
您也可以找到更多信息here。
查看java.util.Timer here。
这些可以解决你的任何问题。
答案 1 :(得分:0)
您应该有一个单独的类来执行倒计时,并将剩余时间(以毫秒为单位)保留为字段。该类可以有一个方法启动一个休眠1000毫秒的线程,然后从原始时间减去1000毫秒,直到剩余时间为0.
然后,您可以使用另一个每1000毫秒更新一次TextView的线程和一个SimpleDateFormat来从countdowntimer对象获取剩余时间并对其进行格式化。