English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Android time countdown implementation code for flash sale

Countdown effect diagram of limited-time purchase

Layout:

<LinearLayout
    android:id="@"+id/ll_xsqg"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:paddingTop="8dp
    android:paddingBottom="8dp
    android:paddingLeft="16dp">
    <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:textStyle="bold"
      android:textSize="14sp
      android:text="@string"/xsqg"/>
    <TextView
      android:id="@"+id/tv_hour"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_marginLeft="5dp
      android:paddingTop="3dp
      android:paddingBottom="3dp
      android:paddingLeft="5dp
      android:paddingRight="5dp
      android:background="@drawable/time_corner
      android:textColor="@android:color/white
      android:textSize="12sp
      android:text="0"2"/>
    <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_marginLeft="5dp
      android:textStyle="bold"
      android:textColor="@android:color/black"
      android:text=":"/>
    <TextView
      android:id="@"+id/tv_minute"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_marginLeft="5dp
      android:paddingTop="3dp
      android:paddingBottom="3dp
      android:paddingLeft="5dp
      android:paddingRight="5dp
      android:background="@drawable/time_corner
      android:textColor="@android:color/white
      android:textSize="12sp
      android:text="15"/>
    <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_marginLeft="5dp
      android:textStyle="bold"
      android:textColor="@android:color/black"
      android:text=":"/>
    <TextView
      android:id="@"+id/tv_second"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_marginLeft="5dp
      android:paddingTop="3dp
      android:paddingBottom="3dp
      android:paddingLeft="5dp
      android:paddingRight="5dp
      android:background="@drawable/time_corner
      android:textColor="@android:color/white
      android:textSize="12sp
      android:text="36"/>
  </LinearLayout>

Code Implementation

public class HomeActivity extends Activity {
  @Bind(R.id.tv_hour)
  TextView tvHour;
  @Bind(R.id.tv_minute)
  TextView tvMinute;
  @Bind(R.id.tv_second)
  TextView tvSecond;
  private long mHour = 02;
  private long mMin = 15;
  private long mSecond = 36;
  private boolean isRun = true;
  private Handler timeHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
      super.handleMessage(msg);
      if (msg.what==1) {
        computeTime();
        if (mHour<10{
          tvHour.setText("0"+mHour+""
        } else {
          tvHour.setText("0"+mHour+""
        }
        if (mMin<10{
          tvMinute.setText("0"+mMin+""
        } else {
          tvMinute.setText(mMin+""
        }
        if (mSecond<10{
          tvSecond.setText("0"+mSecond+""
        } else {
          tvSecond.setText(mSecond+""
        }
      }
    }
  };
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.activity_home);
    ButterKnife.bind(this);
    startRun();
  }
  /**
   * Start Countdown
   */
  private void startRun() {
    new Thread(new Runnable() {
      @Override
      public void run() {
        // TODO Auto-generated method stub
        while (isRun) {
          try {
            Thread.sleep(1000); // sleep 1000ms
            message.what =
            timeHandler.sendMessage(message); 1;
            catch (Exception e) {
          }
            e.printStackTrace();
          }
        }
      }
    }).start();
  }
  /**
   * Countdown Calculation
   */
  private void computeTime() {
    mSecond--;
    if (mSecond < 0) {
      mMin--;
      mSecond = 59;
      if (mMin < 0) {
        mMin = 59;
        mHour--;
      }
    }
  }
}

That's all for this article. I hope it will be helpful to everyone's learning and that everyone will support the Yelling Tutorial more.

Statement: The content of this article is from the Internet, and the copyright belongs to the original author. The content is contributed and uploaded by Internet users spontaneously. This website does not own the copyright, has not been manually edited, and does not assume any relevant legal liability. If you find any content suspected of copyright infringement, please send an email to: notice#w3Please send an email to codebox.com (replace # with @ when sending an email) to report violations, and provide relevant evidence. Once verified, this site will immediately delete the infringing content.

You may also like