package com.teeking.android.assistant;
import android.app.Activity;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
/**
* @author 紫灰机
* @Description: button计时器
* @data 2018/7/25 10:57
*/
public class test extends AppCompatActivity{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
activity = this;
btnGetCode = findViewById(R.id.btnGetCode);
btnGetCode.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
timer.start();
}
});
}
Activity activity;
Button btnGetCode;
//60000代表的是 60秒每隔1秒去更改btnGetCode获取验证码按钮的显示的时间(执行onTick()方法)
//60秒之后执行onFinish()。
//+500避免内部计时器通过精确的时间(非整毫秒数)折算的计时时间不准
private CountDownTimer timer = new CountDownTimer(10000 + 500, 1000) {
//我们在这里去更改定时改变的东西
@Override
public void onTick(long millisUntilFinished) {
if (activity != null) {
btnGetCode.setClickable(false);
String str = "秒后重新发送";
if (millisUntilFinished / 1000 == 0) {
onFinish();
} else {
str = millisUntilFinished / 1000 + str;
btnGetCode.setText(str);
}
}
}
//60秒执行完之后,执行的方法。
@Override
public void onFinish() {
btnGetCode.setText("重新获取");
btnGetCode.setEnabled(true);
btnGetCode.setClickable(true);
}
};
@Override
protected void onDestroy() {
super.onDestroy();
if (timer != null) {
timer.cancel();
}
}
}
Android中textview、button等按钮的计时器使用
最新推荐文章于 2021-10-15 11:57:27 发布