先上代码:
public class RegistPhoneNumActivity extends BaseActivity {
@BindView(R.id.regist_phonenum)
EditText phonenum;
@BindView(R.id.regist_phonenum_getcode)
TextView getcode;
@BindView(R.id.regist_phonenum_code)
VerificationCodeView code;
@BindView(R.id.regist_phonenum_next)
TextView next;
@BindView(R.id.regist_phonenum_choose)
ImageView choose;
@BindView(R.id.regist_phonenum_argument)
TextView argument;
private TimeCount time;
private int flag = 0;
@Override
protected View onCreateContentView() {
return inflateContentView(R.layout.activity_regist_phonenum);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
registerBack();
setTitle("注册");
}
public static void start(Context context) {
Intent starter = new Intent(context, RegistPhoneNumActivity.class);
context.startActivity(starter);
}
@OnClick({R.id.regist_phonenum_getcode, R.id.regist_phonenum_next, R.id.regist_phonenum_choose, R.id.regist_phonenum_argument})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.regist_phonenum_getcode:
if (!PhoneUtils.isMobileNO(ViewUtils.getText(phonenum))) {
ToastUtil.showToast("手机号格式错误");
return;
}
if (flag % 2 == 0) {
ToastUtil.showToast("请阅读并同意《用户协议》");
return;
}
sendsms();
break;
case R.id.regist_phonenum_next:
if (!PhoneUtils.isMobileNO(ViewUtils.getText(phonenum))) {
ToastUtil.showToast("手机号格式错误");
return;
}
if (StringUtil.isEmpty(code.getInputContent()) || code.getInputContent().length() != 4) {
ToastUtil.showToast("验证码输入错误");
return;
}
if (flag % 2 == 0) {
ToastUtil.showToast("请阅读并同意《用户协议》");
return;
}
valid();
break;
case R.id.regist_phonenum_choose:
if (flag % 2 == 0) {
choose.setImageResource(R.drawable.weixuanzhong);
} else {
choose.setImageResource(R.drawable.xuanzhong);
}
break;
case R.id.regist_phonenum_argument:
BaseWebViewActivity.loadUrl(RegistPhoneNumActivity.this, BaseModel.API_HOST_PRE + "/useragreement.html", "轻便利用户协议");
break;
}
}
private void sendsms() {
new UserModel().sendsms(ViewUtils.getText(phonenum), new BaseModel.BaseModelIB() {
@Override
public void StartOp() {
showLoading();
}
@Override
public void successful(Object o) {
hideLoading();
time = new TimeCount(60000, 1000);
time.start();// 开始计时
}
@Override
public void failed(ResultsModel resultsModel) {
hideLoading(resultsModel.getMessage());
}
});
}
private void valid() {
new UserModel().validPhone(ViewUtils.getText(phonenum), code.getInputContent(), new BaseModel.BaseModelIB() {
@Override
public void StartOp() {
showLoading();
}
@Override
public void successful(Object o) {
hideLoading();
RegistActivity.start(RegistPhoneNumActivity.this, ViewUtils.getText(phonenum));
}
@Override
public void failed(ResultsModel resultsModel) {
hideLoading(resultsModel.getMessage());
}
});
}
class TimeCount extends CountDownTimer {
public TimeCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onFinish() {// 计时完毕
getcode.setText("获取验证码");
getcode.setClickable(true);
}
@Override
public void onTick(long millisUntilFinished) {// 计时过程
getcode.setClickable(false);//防止重复点击
getcode.setText("验证码 (" + millisUntilFinished / 1000 + "s)");
}
}
}
其中加粗蓝色代码为重点部分。
getcode为获取验证码按钮。
注:
import android.os.CountDownTimer;