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

Android使用CountDownTimer实现倒数定时器效果

程序员文章站 2023-12-17 13:07:46
实现倒计时的效果 例子:发送验证码按钮 效果图: /** * 倒计时 * * @author admin * */ public...

实现倒计时的效果

例子:发送验证码按钮

效果图:

Android使用CountDownTimer实现倒数定时器效果

/**
 * 倒计时
 * 
 * @author admin
 * 
 */
public class mainactivity extends actionbaractivity {

  private button tvtime;// 显示时间
  private mycountdowntimer mycountdowntimer;// 倒计时对象

  @override
  protected void oncreate(bundle savedinstancestate) {
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.activity_main);
    tvtime = (button) findviewbyid(r.id.time);
    tvtime.settext("发送验证码");
    tvtime.setonclicklistener(new onclicklistener() {

      @override
      public void onclick(view v) {

        start();

        tvtime.setenabled(false);// 倒计时时不可点击

      }
    });
  }

  /**
   * 开始
   * 
   * @param view
   */
  public void start() {
    long countdowninterval = 1000;// 间隔时间
    long millisinfuture = 20000;// 时长
    mycountdowntimer = new mycountdowntimer(millisinfuture,
        countdowninterval);
    mycountdowntimer.start();
  }



  /**
   * 结束
   * 
   * @param view
   */
  public void end() {
    if (mycountdowntimer != null) {
      mycountdowntimer.cancel();

    }
  }

  @override
  protected void ondestroy() {
    super.ondestroy();
    end();
  }

  /**
   * 倒计时
   * 
   * @author admin
   * 
   */
  private class mycountdowntimer extends countdowntimer {

    public mycountdowntimer(long millisinfuture, long countdowninterval) {
      super(millisinfuture, countdowninterval);
    }

    // 可直接更新ui
    @override
    public void ontick(long millisuntilfinished) {
      tvtime.settext("剩余时间:" + millisuntilfinished / 1000);// 转化为秒
    }

    @override
    public void onfinish() {
      tvtime.settext("获取验证码");
      tvtime.setenabled(true);// 当时间结束时才可以点击

    }

  }

}

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

上一篇:

下一篇: