CountDownTimer实现按钮的倒计时
继承CountDownTimer
class TimeCount extends CountDownTimer{
public TimeCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onFinish() {// 计时完毕
countDownTv.setText("发送验证码");
countDownTv.setClickable(true);
}
@Override
public void onTick(long millisUntilFinished) {// 计时过程
countDownTv.setClickable(false);//防止重复点击
countDownTv.setText("重新获取"+millisUntilFinished / 1000 );
}
}
在onCreateView方法里面启动
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View root=inflater.inflate(R.layout.register_frag2,null);
timeCount=new TimeCount(MAX_TIME*1000,1000);
countDownTv =(TextView) root.findViewById(R.id.tv_count_down);
countDownTv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
timeCount.start();
}
});
timeCount.start();
tvHtml=(TextView) root.findViewById(R.id.tv_html);
String phoneNumber=getArguments().getString("phoneNumber");
String text = "验证码已经发送到<font color='red'>"+phoneNumber +
"</font>手机上,请输入您收到的验证码";
Spanned spanned = Html.fromHtml(text);
tvHtml.setText(Html.fromHtml(text));
return root;
}
效果截图