您的位置:首页 > 移动开发 > Android开发

Android获取验证码倒计时功能(CountDownTimer实现)

2016-11-12 11:25 976 查看
activity_main.xml文件:

<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="获取验证码"
android:background="@drawable/btn_drawable"/>
res-drawable-btn_drawable.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="8px"></corners>
<stroke android:width="1px" android:color="#e4e4e4"></stroke>
</shape>
MainActivity:

private Button button;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);

button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
CountDownTimerUtil countDownTimerUtil = new CountDownTimerUtil(button,60000,1000);
countDownTimerUtil.start();
}
});
}

写一个CountDownTimerUtil类继承CountDownTimer类实现倒计时功能:

public class CountDownTimerUtil extends CountDownTimer {

private Button button;

public CountDownTimerUtil(Button button, long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
this.button = button;
}

//点击时触发这个操作
@Override
public void onTick(long l) {
button.setText(l / 1000 + "秒倒计时");
button.setClickable(false);
button.setBackgroundColor(Color.parseColor("#e88d94"));
}

//倒计时完成以后
@Override
public void onFinish() {
button.setClickable(true);
button.setText("重发验证码");
button.setBackgroundResource(R.drawable.btn_drawable);
}
}

CountDownTimerUtil的两个参数分别是总时间和倒计时间隔时间:倒计时60秒 每秒执行一次

好了,效果实现了点击按钮开始倒计时功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息