package com.example.day11;
import com.example.day11.CountDownButtonUtils.OnFinishListener;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void button(View v) {
Button button = (Button) v;
CountDownButtonUtils countDownButtonUtils = new CountDownButtonUtils(
button, "发送验证码", 60, 1);
// 开始倒计时
countDownButtonUtils.start();
countDownButtonUtils.setOnFinishListener(new OnFinishListener() {
@Override
public void finish() {
Toast.makeText(MainActivity.this, "倒计时结束 ", 0).show();
}
});
}
}
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
package com.example.day11;
import android.os.CountDownTimer;
import android.widget.Button;
public class CountDownButtonUtils {
private CountDownTimer countDownTimer;
private OnFinishListener listener;
private Button button;
public CountDownButtonUtils(final Button button,
final String defaultString, int max, int interval) {
this.button = button;
if (max == 0 && interval == 0) {
button.setText(defaultString);
return;
}
countDownTimer = new CountDownTimer(max * 1000, interval * 1000 - 10) {
@Override
public void onTick(long time) {
button.setText("(" + ((time + 15) / 1000) + "秒)"
+ defaultString);
}
@Override
public void onFinish() {
button.setEnabled(true);
button.setText(defaultString);
if (listener != null) {
listener.finish();
}
}
};
}
public void start() {
button.setEnabled(false);
countDownTimer.start();
}
/**
* 关闭倒计时,不可点击
*/
public void cancel(boolean isEnabled) {
countDownTimer.cancel();
if (isEnabled) {
button.setEnabled(isEnabled);
}
}
public void setOnFinishListener(OnFinishListener listener) {
this.listener = listener;
}
public interface OnFinishListener {
public void finish();
}
}