Android倒计时按钮实现

重点:

            会使用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
	 */
}


你可能感兴趣的:(android,源代码,验证码,private,public)