-->

跟踪倒数计时器每分钟(Track each minute in countdown timer)

2019-09-03 15:29发布

我要显示的每个minute.I完成现在用的倒计时后举杯消息并显示文本计时器view.Please帮我理清这problem.Following是我的代码。

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.track_me_mode);
    counter = new MyCount (length,10);
    counter.start();
    }
    });
         public class MyCount extends CountDownTimer {
        Context mContext;

        public MyCount(long millisInFuture, long countDownInterval) {
          super(millisInFuture, countDownInterval);
        }


        public void onTick (long millisUntilFinished) {
            timerView.setText ( formatTime(millisUntilFinished));


          }

        public void onFinish() {


              }

            }
public String formatTime(long millis) {
    output = "";
    long seconds = millis / 1000;
    long minutes = seconds / 60;
    long hours=minutes/ 60;

    seconds = seconds % 60;
    minutes = minutes % 60;
    hours=hours%60;

    String secondsD = String.valueOf(seconds);
    String minutesD = String.valueOf(minutes);
    String hoursD=String.valueOf(hours);

    System.out.println(minutesD);

    if (seconds < 10)
      secondsD = "0" + seconds;
    if (minutes < 10)
      minutesD = "0" + minutes;

    if (hours < 10)
        hoursD = "0" + hours;

    output = hoursD+" : "+minutesD + " : " + secondsD;
    return output;
  }
}

Answer 1:

好吧,你需要改变你的代码点点,

  1. 你需要改变你的秒变量一流水平
  2. 您需要更改如下的区间,

    counter = new MyCount (3600000,10);counter = new MyCount (3600000,1000); 因为第二个参数是毫秒。 我已经做了如下代码的所有的变化,

     public class MainActivity extends Activity { TextView timerView; Button end,SOS; String output; MyCount counter; int length; // Change by Lucifer long seconds; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); timerView=(TextView)findViewById(R.id.tv_timer_track_me); // counter = new MyCount (3600000,10); counter = new MyCount (3600000,1000); counter.start(); } public String formatTime(long millis) { output = ""; seconds = millis / 1000; long minutes = seconds / 60; long hours=minutes/ 60; seconds = seconds % 60; minutes = minutes % 60; hours=hours%60; String secondsD = String.valueOf(seconds); String minutesD = String.valueOf(minutes); String hoursD=String.valueOf(hours); if (seconds < 10) secondsD = "0" + seconds; if (minutes < 10) minutesD = "0" + minutes; if (hours < 10) hoursD = "0" + hours; output = hoursD+" : "+minutesD + " : " + secondsD; return output; } public class MyCount extends CountDownTimer { Context mContext; public MyCount(long millisInFuture, long countDownInterval) { super(millisInFuture, countDownInterval); } public void onTick (long millisUntilFinished) { timerView.setText ( formatTime(millisUntilFinished)); if ( seconds == 0 ) { Toast.makeText( getApplicationContext(), "Done", Toast.LENGTH_LONG ).show(); } } public void onFinish() {} } @Override public void onDestroy() { super.onDestroy(); counter.cancel(); } } 


文章来源: Track each minute in countdown timer