实用技巧——获取验证码的倒计时

效果图

源码:GitHub

CountDownTimer

创建对象,调用start的方法,开始倒计时

/*** 第一个参数:总时长(毫秒)* 第二个参数:多久执行一次回调(毫秒)*/
new CountDownTimer(10000, 1000) {@Overridepublic void onTick(long millisUntilFinished) {// TODO 显示倒计时}@Overridepublic void onFinish() {// TODO 倒计时结束}
}.start();

封装

package kong.qingwei.countdowntimerdemo;import android.os.CountDownTimer;
import android.widget.Button;/*** Created by kqw on 2016/5/11.* TimeCountUtil*/
public class TimeCountUtil extends CountDownTimer {private Button mButton;public TimeCountUtil(Button button, long millisInFuture, long countDownInterval) {super(millisInFuture, countDownInterval);this.mButton = button;}@Overridepublic void onTick(long millisUntilFinished) {// 按钮不可用mButton.setEnabled(false);String showText = millisUntilFinished / 1000 + "秒后可重新发送";mButton.setText(showText);}@Overridepublic void onFinish() {// 按钮设置可用mButton.setEnabled(true);mButton.setText("重新获取验证码");}
}

Code(参考)

测试类

package kong.qingwei.countdowntimerdemo;import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;public class MainActivity extends AppCompatActivity {private Button mButton;private TimeCountUtil mTimeCountUtil;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mButton = (Button) findViewById(R.id.button);mTimeCountUtil = new TimeCountUtil(mButton, 5000, 1000);mButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {mTimeCountUtil.start();// TODO 请求验证码Toast.makeText(getApplicationContext(), "请求验证码", Toast.LENGTH_SHORT).show();}});}
}

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: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="kong.qingwei.countdowntimerdemo.MainActivity"><Button
        android:id="@+id/button"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="@drawable/selector_button"android:text="点击发送验证码"/>
</RelativeLayout>

drawable

  • selector_button.xml

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 可用状态 -->
    <item android:drawable="@drawable/shape_button_type1" android:state_enabled="true" />
    <!-- 不可用状态 -->
    <item android:drawable="@drawable/shape_button_type2" android:state_enabled="false" />
    </selector>
  • shape_button_type1.xml

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"><solid android:color="#FF4583C9"/><corners android:radius="5dp"/><stroke android:width="1px" android:color="#FF4583C9" />
    </shape>
  • shape_button_type2.xml

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"><solid android:color="#FFDDDDDD"/><corners android:radius="5dp"/><stroke android:width="1px" android:color="#FFDDDDDD" />
    </shape>

实用技巧——获取验证码的倒计时相关推荐

  1. Java中IDEA,Springboot实现手机获取验证码和倒计时

    问题一:我现在点击获取手机验证码,虽然现实正在发送 但是手机接收不到验证码 我试了很多 也不知道哪的问题 我们使用的是榛子云短信平台, 官网地址:http://smsow.zhenzikj.com 已 ...

  2. 倒计时到0停止,用在手机获取验证码的倒计时

    <input type="text" placeholder="填写验证码" class="check1 "/><butt ...

  3. Android实现获取验证码的倒计时功能

    开发中经常会遇到获取短信验证码,获取验证码后需要等待1分钟倒计时,这段时间是不能再次发送短信请求的. 实现如下: CountDownTimerUtils.java package com.zhw.my ...

  4. uni-app实现获取验证码的倒计时

    实现的效果 页面部分是一个三目运算,codeTime是倒计时的时间. <template><view><view class="three">& ...

  5. Vue 获取验证码60s倒计时方法

    HTML: <div class="item"><input type="text" v-model="phone" pl ...

  6. keil5函数 默认返回值_python实用技巧——获取部分返回值的4种方式

    喜欢编程,热爱分享,希望能结交更多志同道合的朋友,一起在学习Python的道路上走得更远! python的函数支持返回多个值.返回多个值时,默认以tuple的方式返回. 例如,下面两个函数的定义是完全 ...

  7. Axure9 实现点击获取验证码倒计时功能

    此文章帮助大家实现App的点击获取验证码的倒计时功能. 1:创建按钮和全局变量: 拖入一个矩形,创建全局变量Time=60. 在项目里面就可以找到创建全局变量的地方. 2:添加点击事件: (1):添加 ...

  8. 微信小程序之获取验证码js

    在微信小程序中怎样实现获取验证码的倒计时功能捏,倒计时的原理是一样一样的,就是某些地方需要注意. 第一步:结构 <view class='get-code' wx:if="{{!isS ...

  9. VUE定时器,用于登陆获取验证码倒计时

    第一步 在当前的按钮中添加@click 事件,并在按钮内文字后面加上变量,并用v-if进行判断,看秒数是否大于0 并且添加disabled,当second>0的时候给它disabled掉. 第二 ...

最新文章

  1. caffe中mnist数据集的运行
  2. linux环境没有bzip2,Linux系统中安装使用Bzip2来压缩文件的方法讲解
  3. r语言解释回归模型的假设_模型假设-解释
  4. JS将数字转换为中文
  5. linux内存一直占满问题
  6. SET XACT_ABORT各种用法及显示结果
  7. maven打的包带exec包比不带的大_spring boot maven打包可执行jar包缺少依赖包的问题...
  8. 过分的谜题 模拟+思维题
  9. HttpURLConnection类的使用
  10. 自己写的一个Js小插件
  11. PaddleOCR 手写识别模型:标注到训练
  12. 基于Matlab使用雷达和摄像头对公路车辆跟踪仿真(附源码)
  13. aspx 微型_最初的十亿分钟:正在向世界授课的微型非营利组织背后的数字
  14. 文件服务器程序,CuteHttpFileServer(文件共享服务器软件)
  15. 百度云库计算机网页制作说课PPT,网页制作说课PPT.doc
  16. 基于java的小型旅游网站设计(含源文件)
  17. 16春季计算机应用基础,16春季福师《计算机应用基础》在线作业一.doc
  18. Qt获取键盘按键ctrl和alt以及shift按键按下和松开
  19. python谷歌小恐龙,这还是你断网时的样子嘛~
  20. 单片机原理与应用-51

热门文章

  1. 搭建第一个Docker
  2. 【7】测试用例设计-等价类分析法
  3. 内购订单进行二次处理_「物流图表」复杂业务场景下的订单管理系统搭建
  4. deepin启动盘无法引导安装_deepin 无法启动问题解决
  5. java透明度_纯度与参考透明度
  6. Farthest sampling on 3d mesh with mesh kept
  7. OpenCV基本线条操作
  8. python队列实现_Python 数据结构之队列的实现
  9. yolov4实现口罩佩戴检测,在验证集上做到了0.954的mAP
  10. md360 android,MD360Player4Android 学习的简单使用