2014-05-06 146 views
0

我有一个倒数计时器,我想在小时,分钟和秒打印。我有下面的代码,但我得到的输出没有正确地在几分钟内转换,我不明白我出错的地方。android eclipse:在几小时,几分钟和几秒钟倒数计时器

enter code here 
CountDownTimer countDownTimer = new CountDownTimer(millisset3, 1000) 

      { 
       TextView tv = (TextView) context.findViewById(R.id.textView2); 
       public void onFinish() { 

        tv.setText("Time finished!"); } 

        public void onTick(long millisUntilFinished) { 

         tv.setText("Time left for Isha: " +String.format(" %d hours, %d min, %d sec", 
            TimeUnit.MILLISECONDS.toHours(millisUntilFinished), 
            TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) - 
            TimeUnit.MINUTES.toMinutes(TimeUnit.MILLISECONDS.toHours(millisUntilFinished)), 
            TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) - 
            TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished)))); 
           } 

     }.start(); 

     } 
+0

已经张贴在这个环节PLZ检查回答这个问题:HTTP://stackoverflow.com/questions/17620641/countdowntimer-in-minutes-and-seconds – Sanket990

回答

0

试试这个

private long startTime = 0L; 
     private Handler myHandler = new Handler(); 
     long timeInMillies = 0L; 
     long timeSwap = 0L; 
     long finalTime = 0L; 


     //on button click(timer start) 

     startTime = SystemClock.uptimeMillis(); 
      myHandler.postDelayed(updateTimerMethod, 0); 

     //===== 

//on button click (timer stop) 

timeSwap += timeInMillies; 
    myHandler.removeCallbacks(updateTimerMethod); 

//================== 


     private Runnable updateTimerMethod = new Runnable() { 

      public void run() { 
      timeInMillies = SystemClock.uptimeMillis() - startTime; 
      finalTime = timeSwap + timeInMillies; 

      int seconds = (int) (finalTime/1000); 
      int minutes = seconds/60; 
      seconds = seconds % 60; 
      int milliseconds = (int) (finalTime % 1000); 
      Log.e("" + minutes + ":" 
      + String.format("%02d", seconds) + ":" 
      + String.format("%03d", milliseconds)); 
      myHandler.postDelayed(this, 0); 
      } 

     }; 
+0

我必须这样做,使用倒数计时器。我正在做一个错误的转换,你可以告诉我,我可以如何转换。 – Anita

0

您可以通过毫秒此功能,您将得到如下格式的字符串。

public static String getFormat(long millis) 
    { 

     DateFormat outFormat = new SimpleDateFormat("hh:mm:ss"); 
     outFormat.setTimeZone(TimeZone.getTimeZone("UTC")); 

     Date d = new Date(millis); 
     String result = outFormat.format(d); 

     return result; 
    } 
相关问题