欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android实现订单倒计时功能

程序员文章站 2024-02-17 17:53:46
先上效果图 1.activity_main.xml ...

先上效果图

Android实现订单倒计时功能

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();
  }


 }
}

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