




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】Android中怎么自定义一个倒计时按钮
本篇文章为大家展示了Android中怎么自定义一个倒计时按钮,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。代码:package
com.dylan.frame.ui;
import
android.content.Context;
import
android.os.Handler;
import
android.os.Message;
import
android.util.AttributeSet;
import
android.view.View;
import
android.widget.Button;
import
java.util.Timer;
import
java.util.TimerTask;
/**
*
自定义倒计时按钮
*
<p/>
*
*
@author
Dylan
*
<p/>
*
[佛祖保佑
永无BUG]
*
Created
by
Dylan
on
2015/11/5
0005.
*/
public
class
CountdownButton
extends
Button
implements
View.OnClickListener
{
private
long
lenght
=
60
*
1000;//默认倒计时时间;
private
long
time;//倒计时时长
private
Timer
timer;//开始执行倒计时
private
TimerTask
timerTask;//每次倒计时执行的任务
private
String
beforeText
=
"点击获取验证码";
private
String
afterText
=
"秒后重新获取";
private
OnClickListener
onClickListener;//按钮点击事件
/**
*
更新显示的文本
*/
private
Handler
handler
=
new
Handler()
{
@Override
public
void
handleMessage(Message
msg)
{
super.handleMessage(msg);
CountdownButton.this.setText(time
/
1000
+
afterText);
time
-=
1000;
if
(time
<
0)
{
CountdownButton.this.setEnabled(true);
CountdownButton.this.setText(beforeText);
clearTimer();
}
}
};
public
CountdownButton(Context
context)
{
super(context);
this.setText(beforeText);
setOnClickListener(this);
}
public
CountdownButton(Context
context,
AttributeSet
attrs)
{
super(context,
attrs);
setOnClickListener(this);
}
public
CountdownButton(Context
context,
AttributeSet
attrs,
int
defStyleAttr)
{
super(context,
attrs,
defStyleAttr);
setOnClickListener(this);
}
/**
*
清除倒计时
*/
private
void
clearTimer()
{
if
(timerTask
!=
null)
{
timerTask.cancel();
timerTask
=
null;
}
if
(timer
!=
null)
{
timer.cancel();
timer
=
null;
}
}
/**
*
设置倒计时时长
*
*
@param
lenght
默认毫秒
*/
public
void
setLenght(long
lenght)
{
this.lenght
=
lenght;
}
/**
*
设置未点击时显示的文字
*
*
@param
beforeText
*/
public
void
setBeforeText(String
beforeText)
{
this.beforeText
=
beforeText;
}
/**
*
设置未点击后显示的文字
*
*
@param
beforeText
*/
public
void
setAfterText(String
afterText)
{
this.afterText
=
afterText;
}
/**
*
点击按钮后的操作
*
*
@param
v
*/
@Override
public
void
onClick(View
v)
{
if
(onClickListener
!=
null)
{
onClickListener.onClick(v);
}
initTimer();
this.setText(time
/
1000
+
afterText);
this.setEnabled(false);
timer.schedule(timerTask,
0,
1000);
}
/**
*
初始化时间
*/
private
void
initTimer()
{
time
=
lenght;
timer
=
new
Timer();
timerTask
=
new
TimerTask()
{
@Override
public
void
run()
{
handler.sendEmptyMessage(1);
}
};
}
/**
*
设置监听按钮点击事件
*
*
@param
onclickListener
*/
@Override
public
void
setOnClickListener(OnClickListener
onclickListener)
{
if
(onclickLi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 全球房地产市场动态试题及答案
- 精确定位营养师资格试题及答案
- 演出经纪人资格证针对性试题及答案
- 营养师资格证考试特色试题汇编
- 2025导游证资格考试文化常识试题及答案
- 2024年营养师资格证易错试题与答案解析
- 营养师考试实战经验及试题答案
- 2024年常见饮食误区试题及答案
- 2024营养师考试体验题及答案
- 演出经纪人资格证多层次解析
- 成人肥胖食养指南(2024年版)
- 物流服务师(高级工)职业技能鉴定考试及答案
- 新人教版英语五年级下册教材解读
- 【课件】跨学科实践:探索厨房中的物态变化问题+课件人教版(2024)物理八年级上册
- 环磷酰胺的护理
- 江西省第一届职业技能大赛分赛场项目技术文件(世赛选拔)轨道车辆技术
- HGT 6342-2024《工业用甲基四氢苯酐》
- 排水管网维护、维修施工方案
- DB32-T 2882-2016城市轨道交通桥隧结构养护技术规程
- 2024年北京市丰台区九年级中考复习一模数学试卷含答案
- 峰峰城区规划方案
评论
0/150
提交评论