嗨我想用天,小时,分钟和秒格式制作一个倒数计时器,我试过如下,但它不起作用,请帮我救我,谢谢
long totalTimeCountInMilliseconds = 86400 * 1000;
countDownTimer = new CountDownTimer(totalTimeCountInMilliseconds, 500) {
@Override
public void onTick(long leftTimeInMilliseconds) {
Date date = new Date(leftTimeInMilliseconds);
String dateText = simpleDateFormat.format(date);
tv_day.setText(dateText);
}
@Override
public void onFinish() {
// this function will be called when the timecount is finished
tv_day.setVisibility(View.VISIBLE);
}
}.start();
答案 0 :(得分:1)
你可以通过使用这个简单的逻辑来实现这个目标
long milliseconds = 3600000;
int seconds = (int) (milliseconds / 1000) % 60 ;
int minutes = (int) ((milliseconds / (1000*60)) % 60);
int hours = (int) ((milliseconds / (1000*60*60)) % 24);
System.out.println("Sec " +seconds+ " minutes "+minutes+" hours " +hours);
希望它可以帮助你。
答案 1 :(得分:1)
在启动计数器之前创建SimpleDateFormat的实例。
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd hh:mm:ss");
并在你的onCLicklistener方法
public void onTick(long leftTimeInMilliseconds) {
Date date = new Date(leftTimeInMilliseconds);
String dateText = simpleDateFormat.format(date);
tv_day.setText(dateText);
}
答案 2 :(得分:0)
根据您的示例代码编辑我的答案。
您所做的很好,现在转而使用suraj shukla's
答案而不是日期转换。 (转换leftTimeInMilliseconds并在文本视图中设置它)
然而,他的转换公式存在轻微错误,他的小时是天,小时是小时,秒是分钟。要从mili秒获得秒数,请执行
int second = (int) (leftTimeInMilliseconds /1000);
int minute = (int) ((leftTimeInMilliseconds /1000)%60);
int hour = (int) ((leftTimeInMilliseconds /1000)%(60*60));
int days = (int) ((leftTimeInMilliseconds /1000)%(60*60*24));
tv_day.setText("Remaining Time:: "+days+" Days "+hour+" Hour "+minute+" Minutes "+seconds+" Seconds");