Android发送验证码倒计时
来源:互联网 发布:java分布式调度框架 编辑:程序博客网 时间:2024/06/11 02:45
实现重新获取验证码的倒计时的话,我们可以将倒计时的button进行一个封装的设计。方便以后多个button都使用倒计时的使用。需要实现CountDownTimer。
TimeCountUtil.java的代码如下所示:
import android.app.Activity;import android.graphics.Color;import android.os.CountDownTimer;import android.text.Spannable;import android.text.SpannableString;import android.widget.Button;/** * Created by Administrator on 2016/7/11 0011. */public class TimeCountUtil extends CountDownTimer { private Activity activity; private Button btn;//按钮 /** * @param millisInFuture The number of millis in the future from the call * to {@link #start()} until the countdown is done and {@link #onFinish()} * is called. * @param countDownInterval The interval along the way to receive * {@link #onTick(long)} callbacks. */ //一个是总的时间millisInFuture,一个是countDownInterval public TimeCountUtil(Activity activity, long millisInFuture, long countDownInterval, Button btn) { super(millisInFuture, countDownInterval); this.activity = activity; this.btn = btn; } @Override public void onTick(long millisUntilFinished) {// btn.setClickable(false); //设置不能点击 btn.setEnabled(false); btn.setText(millisUntilFinished / 1000 + "秒后可重新发送"); //设置倒计时的时间 btn.setBackground(activity.getResources().getDrawable(R.mipmap.board_non_pre)); //不能点击的时候的按钮的背景色 Spannable span = new SpannableString(btn.getText().toString()); //获取按钮的文字 btn.setText(span); } @Override public void onFinish() { btn.setText("重新获取验证码");// btn.setClickable(true);//重新获得点击 btn.setEnabled(true); btn.setBackground(activity.getResources().getDrawable(R.mipmap.login_btn));//还原背景色 btn.setText("重新获取验证码"); btn.setTextColor(Color.WHITE); }}
然后在我们需要的一个button上面,将这个button的id传参到TimeCountUtil的构造方法中就ok啦。
具体实现如下:
获取资源,不需多说。
commit_btn = (Button) findViewById(R.id.commit_btn);然后用TimeCountUtil的构造方法,代码:
TimeCountUtil timeCountUtil = new TimeCountUtil(this, 10000, 1000, commit_btn);timeCountUtil.start();具体就这些了,然后TimeCountUtil中的方法,可以根据自己的需要来进行一定的设置,包括时间的设置也是可以根据自己的需求来进行设定的。
还有就是setEnable()和setClickable()的区别简单的说一下吧,我做的过程中刚开始用的setClickable,但是没能实现,查了一下才知道:
setEnable设置的是用户是否可以点击按钮,false的话是将控件完全禁用了。而setClickable是设置程序在某个条件下自动点击此按钮。
还有一个比较有说服力的部分代码来解释setClickable:
- public void setOnClickListener(OnClickListener l) {
- if (!isClickable()) {
- setClickable(true);
- }
- getListenerInfo().mOnClickListener = l;
- }
可以加深下理解。看自己的需求吧。希望能有一定的提高。
1 0
- Android发送验证码倒计时,时间倒计时
- Android发送验证码倒计时
- android 发送验证码,显示倒计时
- Android发送验证码的倒计时按钮
- Android发送验证码倒计时自定义View
- Android笔记:发送验证码后倒计时
- Android 自定义发送验证码, 倒计时
- 验证码倒计时发送
- 发送验证码倒计时
- 发送手机验证码倒计时
- jq 发送验证码倒计时
- ionic 发送验证码倒计时
- 发送验证码倒计时功能
- JQ倒计时发送验证码
- 发送验证码后倒计时
- android端发送验证码后倒计时程序
- Android中注册、找回密码等发送验证码倒计时
- Android 发送验证码倒计时常用的两种办法
- iOS学习 数据库 SQL语句
- Mac OS X窗口最小化方法的几个快捷键
- Hibernate总结(一)--之hibernate配置文件
- VS2008下搭建QT环境
- 开始Java的学习
- Android发送验证码倒计时
- 抽象
- Java Web 技术学习主线
- ios framework 真机和模拟器合并
- 灯泡开关
- #ifndef/#define/#endif使用详解
- 关于下拉列表的实现(spinner和PopupWindow+listview)
- 校门外的树 走过看看
- nyoj746 整数划分(四)【区间dp】