[英]How to Countdown to a day using Android CountDownTimer
我是Android开发的新手,我对Android CountDownTimer有疑问。 我如何使用Android的CountDownTimer倒计时到某个特定日期,例如2015年11月6日? 另外,如何将Java代码与相应的XML代码一起使用?
我对这个问题( 如何倒数日期 )有疑问,真的不知道发生了什么吗? 任何人都可以抽出一点时间来帮助我吗?
谢谢
这就是你的做法
更新3
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_layout);
TextView tv_countdown = (TextView) findViewById(R.id.your_textview_id);
Calendar start_calendar = Calendar.getInstance();
Calendar end_calendar = Calendar.getInstance();
long start_millis = start_calendar.getTimeInMillis(); //get the start time in milliseconds
long end_millis = end_calendar.getTimeInMillis(); //get the end time in milliseconds
long total_millis = (end_millis - start_millis); //total time in milliseconds
end_calendar.set(2015, 10, 6); // 10 = November, month start at 0 = January
//1000 = 1 second interval
CountDownTimer cdt = new CountDownTimer(total_millis, 1000) {
@Override
public void onTick(long millisUntilFinished) {
long days = TimeUnit.MILLISECONDS.toDays(millisUntilFinished);
millisUntilFinished -= TimeUnit.DAYS.toMillis(days);
long hours = TimeUnit.MILLISECONDS.toHours(millisUntilFinished);
millisUntilFinished -= TimeUnit.HOURS.toMillis(hours);
long minutes = TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished);
millisUntilFinished -= TimeUnit.MINUTES.toMillis(minutes);
long seconds = TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished);
tv_countdown.setText(days + ":" + hours + ":" + minutes + ":" + seconds); //You can compute the millisUntilFinished on hours/minutes/seconds
}
@Override
public void onFinish() {
tv_countdown.setText("Finish!");
}
};
cdt.start();
}
有用的方法!
@Override
public void start(final long miliSecond, final int interval) {
new CountDownTimer(miliSecond, interval) {
@Override
public void onTick(long millisUntilFinished) {
long day = TimeUnit.MILLISECONDS.toDays(millisUntilFinished);
millisUntilFinished -= TimeUnit.DAYS.toMillis(day);
long hour = TimeUnit.MILLISECONDS.toHours(millisUntilFinished);
millisUntilFinished -= TimeUnit.HOURS.toMillis(hour);
long minute = TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished);
millisUntilFinished -= TimeUnit.MINUTES.toMillis(minute);
long second = TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished);
intDay.setText("" + day);
intHour.setText("" + hour);
intMinute.setText("" + minute);
intSecond.setText("" + second);
}
@Override
public void onFinish() {
// What ever you want !
}
}.start();
}
Date currentDate=new Date();
Date endDate=new Date();
long difference = endDate.getTime() - currentDate.getTime();
new CountDownTimer(difference, 1000) {
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
System.out.println("Done");
}
}.start();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.