2

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

2 回答 2

0

其中很多已经完成。如果您阅读有关SimpleDateFormat的信息,它应该可以帮助您解决这个问题。

您也可以在此处找到更多信息。

在这里查看 java.util.Timer 。

这些应该可以解决您的任何问题。

于 2013-01-25T20:50:05.053 回答
0

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

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

于 2013-01-25T20:57:15.367 回答