当前位置: 移动技术网 > 移动技术>移动开发>Android > Android实现订单倒计时功能

Android实现订单倒计时功能

2019年07月24日  | 移动技术网移动技术  | 我要评论

先上效果图

1.activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:id="@+id/activity_main"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:paddingbottom="@dimen/activity_vertical_margin"
 android:paddingleft="@dimen/activity_horizontal_margin"
 android:paddingright="@dimen/activity_horizontal_margin"
 android:paddingtop="@dimen/activity_vertical_margin"
 tools:context="yascn.com.timecalc.mainactivity">



 <textview
  android:textsize="20dp"
  android:layout_centerinparent="true"
  android:id="@+id/tv_remaintime"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:textcolor="#000000"
  />
</relativelayout>


2.mainactivity.class

package yascn.com.timecalc;

import android.os.handler;
import android.support.v7.app.appcompatactivity;
import android.os.bundle;
import android.view.view;
import android.widget.button;
import android.widget.textview;
import android.widget.toast;

import java.text.parseexception;
import java.text.simpledateformat;
import java.util.date;

public class mainactivity extends appcompatactivity {


 textview tv_remaintime;//倒计时
 private long countdowntime;//倒计时的总时间(单位:毫秒)
 private string timefromserver;//从服务器获取的订单生成时间
 private long chaoshitime;//从服务器获取订单有效时长(单位:毫秒)

 @override
 protected void oncreate(bundle savedinstancestate) {
  super.oncreate(savedinstancestate);
  setcontentview(r.layout.activity_main);

  tv_remaintime = (textview) findviewbyid(r.id.tv_remaintime);

  gettimeduring();

 }


 handler handler = new handler();
 runnable runnable = new runnable() {
  @override
  public void run() {
   countdowntime -= 1000;//倒计时总时间减1

   simpledateformat minforamt = new simpledateformat("mm:ss");

   string hms = minforamt.format(countdowntime);//格式化倒计时的总时间
   tv_remaintime.settext("还剩下" + hms);
   handler.postdelayed(this, 1000);
  }
 };


 private void gettimeduring() {
  chaoshitime = 30 * 60 * 1000;//应该从服务器获取

  timefromserver = "2017-01-23 11:40:50";//应该从服务器获取
  simpledateformat df = new simpledateformat("yyyy-mm-dd hh:mm:ss");
  try {
   date serverdate = df.parse(timefromserver);

   long duringtime = new date().gettime() - serverdate.gettime();//计算当前时间和从服务器获取的订单生成时间的时间差
   countdowntime = chaoshitime - duringtime;//计算倒计时的总时间

   handler.postdelayed(runnable, 1000);

  } catch (parseexception e) {
   e.printstacktrace();
  }


 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网