Track every minute of the countdown timer
I want to show a toast message after every minute ends. I am using a countdown timer and displaying the timer in text view. Please help me understand this issue. The following is my code.
@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;
}
}
+1
source to share
1 answer
Ok, you need to change the code a little,
- You need to change the Seconds variable to the class level
-
You need to change your spacing as follows:
from
counter = new MyCount (3600000,10);
tocounter = new MyCount (3600000,1000);
, because the second argument is a millisecond. I made all the changes below the code,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(); } }
+8
source to share