安卓验证码倒计时的实现

2024-08-21 10:48

本文主要是介绍安卓验证码倒计时的实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

构造方法

public CountDownTimer (long millisInFuture, long countDownInterval)

参数

millisInFuture 从开始调用start()到倒计时完成并onFinish()方法被调用的毫秒数。(译者注:倒计时时间,单位毫秒)

countDownInterval 接收onTick(long)回调的间隔时间。(译者注:单位毫秒)

公共方法如下:

取消倒计时(译者:取消后,再次启动会重新开始倒计时)

 public final void cancel ()

倒计时完成时被调用

  public abstract void onFinish () 

固定间隔被调用

 public abstract void onTick (long millisUntilFinished)参数 millisUntilFinished   倒计时剩余时间。

启动倒计时

 public synchronized final CountDownTimer start ()

新建一个类继承CountDownTimer,重写onFinish()以及onTick()方法。

public class MyCountdown extends CountDownTimer {private Button mButton;public MyCountdown(Button button, long millisInFuture,long countDownInterval) {super(millisInFuture, countDownInterval);mButton = button;
}@Override
public void onFinish() {// 获取 验证码按钮可点击setButtonEnable();}@Override
public void onTick(long millisUntilFinished) {// 获取验证码按钮不可点击,倒计时开始setButtonUnEnable(millisUntilFinished);}@SuppressWarnings("deprecation")
private void setButtonEnable() {mButton.setEnabled(true);mButton.setText("重新获取");mButton.setBackgroundDrawable(MyApplication.getInstance().getResources().getDrawable(R.drawable.shape_button_red));}@SuppressWarnings("deprecation")
public void setButtonUnEnable(long millisUntilFinished) {mButton.setEnabled(false);mButton.setText("重新获取(" + millisUntilFinished / 1000 + ")秒");mButton.setBackgroundDrawable(MyApplication.getInstance().getResources().getDrawable(R.drawable.shape_button_gray));
}}

用到两个样式xml。

shapebuttonred.xml

  <?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" >  <corners android:radius="3.0dip" />  <solid android:color="@color/ycode"></solid></shape>  

shapebuttongray.xml

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" ><corners android:radius="3.0dip" />  
<solid android:color="@color/gary" />  </shape>

调用:

1.先声明

 private MyCountdown mCounter;

2.实例化并start

mCounter = new MyCountdown(btn_reg_getcode, 60000, 1000);
mCounter.start();

这篇关于安卓验证码倒计时的实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1092949

相关文章

linux批量替换文件内容的实现方式

《linux批量替换文件内容的实现方式》本文总结了Linux中批量替换文件内容的几种方法,包括使用sed替换文件夹内所有文件、单个文件内容及逐行字符串,强调使用反引号和绝对路径,并分享个人经验供参考... 目录一、linux批量替换文件内容 二、替换文件内所有匹配的字符串 三、替换每一行中全部str1为st

SpringBoot集成MyBatis实现SQL拦截器的实战指南

《SpringBoot集成MyBatis实现SQL拦截器的实战指南》这篇文章主要为大家详细介绍了SpringBoot集成MyBatis实现SQL拦截器的相关知识,文中的示例代码讲解详细,有需要的小伙伴... 目录一、为什么需要SQL拦截器?二、MyBATis拦截器基础2.1 核心接口:Interceptor

SpringBoot集成EasyPoi实现Excel模板导出成PDF文件

《SpringBoot集成EasyPoi实现Excel模板导出成PDF文件》在日常工作中,我们经常需要将数据导出成Excel表格或PDF文件,本文将介绍如何在SpringBoot项目中集成EasyPo... 目录前言摘要简介源代码解析应用场景案例优缺点分析类代码方法介绍测试用例小结前言在日常工作中,我们经

基于Python实现简易视频剪辑工具

《基于Python实现简易视频剪辑工具》这篇文章主要为大家详细介绍了如何用Python打造一个功能完备的简易视频剪辑工具,包括视频文件导入与格式转换,基础剪辑操作,音频处理等功能,感兴趣的小伙伴可以了... 目录一、技术选型与环境搭建二、核心功能模块实现1. 视频基础操作2. 音频处理3. 特效与转场三、高

Python实现中文文本处理与分析程序的示例详解

《Python实现中文文本处理与分析程序的示例详解》在当今信息爆炸的时代,文本数据的处理与分析成为了数据科学领域的重要课题,本文将使用Python开发一款基于Python的中文文本处理与分析程序,希望... 目录一、程序概述二、主要功能解析2.1 文件操作2.2 基础分析2.3 高级分析2.4 可视化2.5

Java实现预览与打印功能详解

《Java实现预览与打印功能详解》在Java中,打印功能主要依赖java.awt.print包,该包提供了与打印相关的一些关键类,比如PrinterJob和PageFormat,它们构成... 目录Java 打印系统概述打印预览与设置使用 PageFormat 和 PrinterJob 类设置页面格式与纸张

使用Go实现文件复制的完整流程

《使用Go实现文件复制的完整流程》本案例将实现一个实用的文件操作工具:将一个文件的内容完整复制到另一个文件中,这是文件处理中的常见任务,比如配置文件备份、日志迁移、用户上传文件转存等,文中通过代码示例... 目录案例说明涉及China编程知识点示例代码代码解析示例运行练习扩展小结案例说明我们将通过标准库 os

Python实现终端清屏的几种方式详解

《Python实现终端清屏的几种方式详解》在使用Python进行终端交互式编程时,我们经常需要清空当前终端屏幕的内容,本文为大家整理了几种常见的实现方法,有需要的小伙伴可以参考下... 目录方法一:使用 `os` 模块调用系统命令方法二:使用 `subprocess` 模块执行命令方法三:打印多个换行符模拟

SpringBoot+EasyPOI轻松实现Excel和Word导出PDF

《SpringBoot+EasyPOI轻松实现Excel和Word导出PDF》在企业级开发中,将Excel和Word文档导出为PDF是常见需求,本文将结合​​EasyPOI和​​Aspose系列工具实... 目录一、环境准备与依赖配置1.1 方案选型1.2 依赖配置(商业库方案)二、Excel 导出 PDF

Python实现MQTT通信的示例代码

《Python实现MQTT通信的示例代码》本文主要介绍了Python实现MQTT通信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 安装paho-mqtt库‌2. 搭建MQTT代理服务器(Broker)‌‌3. pytho