当前位置: 移动技术网 > IT编程>移动开发>Android > Android使用CountDownTimer实现倒数定时器效果

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

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

实现倒计时的效果

例子:发送验证码按钮

效果图:

/**
 * 倒计时
 * 
 * @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);// 当时间结束时才可以点击

    }

  }

}

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

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

相关文章:

验证码:
移动技术网