重点:
会使用CountDownTimer。
源代码如下:
/** * 按钮+倒计时功能 * * @author lincoln * */ public class CountDownButton extends Button { private String initTextString = "验证码"; public CountDownButton(Context context, AttributeSet attrs) { super(context, attrs); init(context); } public CountDownButton(Context context) { super(context); init(context); } private void init(Context context) { setEnabled(true); initTimerInstance(); } /** * CountTimer Begin */ private final int TIMER_COUNTDOWN = 60 * 1000; // 倒计时时间 private final int TIMER_INTERVAL = 1 * 1000; private CountDownTimer countDownTimer = null; private void initTimerInstance() { countDownTimer = new CountDownTimer(TIMER_COUNTDOWN, TIMER_INTERVAL) { @Override public void onTick(long millisUntilFinished) { int seconds = (int) (millisUntilFinished / 1000); setText(seconds + ""); setEnabled(false); } @Override public void onFinish() { setText(initTextString); setEnabled(true); } }; } /** * 启动 倒计时 */ public void startTimer(final String finishContent) { countDownTimer.start(); } /** * 停止 倒计时 * * 把button设置为Enable */ public void stopTimer() { countDownTimer.onFinish(); } /** * 取消: * * 2 取消Timer */ public void cancleTimer() { stopTimer(); countDownTimer.cancel(); } /** * CountTimer End */ }