代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
自定义倒计时button
作者:
Gilbert
/ 发布于
2015/7/15
/
597
获取验证码时,点击按钮获取验证码,按钮开始倒计时
package com.lezhi.yuemianqiye.view.customview; import java.util.Timer; import java.util.TimerTask; import android.content.Context; import android.content.res.TypedArray; import android.os.Handler; import android.os.Message; import android.text.TextUtils; import android.util.AttributeSet; import android.view.View; import android.widget.Button; import com.lezhi.yuemianqiye.R; import com.nostra13.universalimageloader.utils.L; /** * 倒计时Button * @author jiyuren * create at 2015年3月23日 上午9:43:16 */ public class CountDownButton extends Button{ private static final String TAG = "CountDownButton"; private Context mContext; private int countDownTime = 60;//默认需要倒计时的时间秒数 private String countDownText ;//倒计时之后的文字显示 private Timer mTimer; private TimerTask mTimerTask; private int seconds = -1; private String countDownIngFormat ;//正在倒计时时要显示的格式 /**倒计时状态**/ private boolean isCountDown = false; private Handler mHandler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 0: if (seconds <= 0) { stopCountDown(); }else{ setText(String.format(countDownIngFormat, seconds)); } break; default: break; } } }; public CountDownButton(Context context) { super(context); init(context,null); } public CountDownButton(Context context, AttributeSet attrs) { super(context, attrs); init(context,attrs); } public CountDownButton(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(context,attrs); } private void init(Context context,AttributeSet attrs) { this.mContext = context; countDownIngFormat = "重新获取(%d)" ; if(null!=attrs){ TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.CountDown); countDownTime = array.getInt(R.styleable.CountDown_countDownTime, 0); countDownText = array.getString(R.styleable.CountDown_countDownText); if(!TextUtils.isEmpty(array.getString(R.styleable.CountDown_countDownIngFormat))){ countDownIngFormat = array.getString(R.styleable.CountDown_countDownIngFormat); } array.recycle(); } setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(null!=countDownOnClickListener){ countDownOnClickListener.onClickListener(); } } }); } /** * 开始倒计时 */ public void startCountDown(){ setEnabled(false); seconds = countDownTime; isCountDown = true; mTimer = new Timer(); mTimerTask = new TimerTask() { @Override public void run() { seconds--; Message msg = Message.obtain(); msg.what = 0; mHandler.sendMessage(msg); } }; if (seconds > 0) { mTimer.schedule(mTimerTask, 0, 1000); } } /** * 停止倒计时 */ public void stopCountDown(){ if(isCountDown){ L.i(TAG, "stop countdown"); seconds = -1; mTimer.cancel(); mTimerTask.cancel(); mTimer = null; mTimerTask = null; setEnabled(true); setText(countDownText); isCountDown = false; } } /** * 判断是否是倒计时状态 */ public boolean isCountDown(){ return isCountDown; } private CountDownOnClickListener countDownOnClickListener; /** * 设置按钮监听 * @param countDownOnClickListener */ public void setCountDownOnClickListener(CountDownOnClickListener countDownOnClickListener){ this.countDownOnClickListener = countDownOnClickListener; } public interface CountDownOnClickListener{ void onClickListener(); } } <declare-styleable name="CountDown"> <attr name="countDownText" format="reference|string" /> <attr name="countDownIngFormat" format="reference|string" /> <attr name="countDownTime" format="integer" /> </declare-styleable>
试试其它关键字
button
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
Gilbert
贡献的其它代码
(
5
)
.
url转map map转string
.
自定义倒计时button
.
将整数实现逆序
.
常用的SQL
.
POI解析Excel封装类
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3