Android(Java)将计时器倒计时到文本中

时间:2013-01-25 20:45:08

标签: java android timer

基本上,我有一个倒数计时器吗?我需要在文本中显示计时器剩余的时间。我已经这样做了,但计时器的时间有点偏,因为它需要将剩下的秒数转换成小时和分钟,就像常规的数字手表那样,它说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();

2 个答案:

答案 0 :(得分:0)

其中很多事情已经完成。如果您阅读SimpleDateFormat,那么它可以帮助您解决问题。

您也可以找到更多信息here

查看java.util.Timer here

这些可以解决你的任何问题。

答案 1 :(得分:0)

您应该有一个单独的类来执行倒计时,并将剩余时间(以毫秒为单位)保留为字段。该类可以有一个方法启动一个休眠1000毫秒的线程,然后从原始时间减去1000毫秒,直到剩余时间为0.

然后,您可以使用另一个每1000毫秒更新一次TextView的线程和一个SimpleDateFormat来从countdowntimer对象获取剩余时间并对其进行格式化。