我有一个倒计时计时器,旨在读取时间并在特定时间停止。显示使用时间和剩余时间。我在我的活动中编写了一个样本。但是应该帮助我以 00:00:00 格式显示的功能不能正常工作。它仅在计时器停止时以该格式显示。
public class PracticeQuestionActivity extends SherlockActivity implements OnClickListener {
private long timeElapsed;
private boolean timerHasStarted = false;
private final long startTime = 50000;
private final long interval = 1000;
MyCountDownTimer countdown = null;
TextView timerText = null, ElaspedTime = null;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.practicequestion);
context = PracticeQuestionActivity.this;
initializeComponents(context);
countdown = new MyCountDownTimer(startTime,interval);
this.controlTimer(); //This is going to start the timer
}
private void controlTimer(){
if (!timerHasStarted)
{
countdown.start();
timerHasStarted = true;
}
else
{
countdown.cancel();
timerHasStarted = false;
}
}
//This is going to format the time value from duration in second
private String setTimeFormatFromSeconds(long durationSeconds){
return String.format("%02d:%02d:%02d", durationSeconds / 3600, (durationSeconds % 3600) / 60, (durationSeconds % 60));
}
//This method is going to be used to initialize the components of the view
private void initializeComponents(Context context){
timerText = (TextView)findViewById(R.id.timer);
ElaspedTime = (TextView)findViewById(R.id.timeElapsed);
}
// CountDownTimer class
public class MyCountDownTimer extends CountDownTimer
{
public MyCountDownTimer(long startTime, long interval)
{
super(startTime, interval);
}
@Override
public void onFinish()
{
timerText.setText("Time's up!");
ElaspedTime.setText("Time Elapsed: " + setTimeFormatFromSeconds(startTime));
}
@Override
public void onTick(long millisUntilFinished)
{
timerText.setText("Time remain:" + millisUntilFinished);
timeElapsed = startTime - millisUntilFinished;
ElaspedTime.setText("Time Elapsed: " + String.valueOf(timeElapsed));
}
}
}