android登陆获取验证码倒计时功能的实现(CountDownTimer)
2016-01-15 10:32
1021 查看
最近公司做一个手机商城APP,注册用户时需要用,用户手机号注册账号,现在基本大部分APP注册都是这样了。遇到了就记下来,方便以后再用,毕竟写过的代码久了不写还是会忘记的。
看了一下官方文档,这个类及其简单,只有四个方法,上面都涉及到了onTick,onFinsh、cancel和start。其中前面两个是抽象方法,所以要重写一下。
下面是一个小例子:
最终效果图;
看了一下官方文档,这个类及其简单,只有四个方法,上面都涉及到了onTick,onFinsh、cancel和start。其中前面两个是抽象方法,所以要重写一下。
下面是一个小例子:
public class MainActivity extends Activity implements OnClickListener { private EditText ed_phone;// 手机号 private Button ed_button;// 验证码按钮 private String phone; private Timecount timecount; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ed_phone = (EditText) findViewById(R.id.ed_phone); ed_button = (Button) findViewById(R.id.ed_button); ed_button.setOnClickListener(this); timecount = new Timecount(60000, 1000);// 构造CountDownTimer对象 } /** * 定义倒计时内部类 */ class Timecount extends CountDownTimer { public Timecount(long millisInFuture, long countDownInterval) { super(millisInFuture, countDownInterval);// 参数依次为总时长,和计时的时间间隔 } @Override public void onTick(long millisUntilFinished) { ed_button.setClickable(false); ed_button.setText(millisUntilFinished / 1000 + "s"); } @Override public void onFinish() { ed_button.setText("重新发送"); ed_button.setClickable(true); } } // 验证手机号是否为空 private void info() { phone = ed_phone.getText().toString(); if (TextUtils.isEmpty(phone)) { Toast.makeText(MainActivity.this, "请输入手机号码", Toast.LENGTH_SHORT) .show(); return; } if (!IS_PHONE.matcher(phone).matches()) { Toast.makeText(MainActivity.this, "请输入正确的手机号", Toast.LENGTH_SHORT) .show(); return; } timecount.start();// 开始倒计时 } //个人习惯这么写 @Override public void onClick(View v) { switch (v.getId()) { case R.id.ed_button: info(); break; default: break; } }
最终效果图;
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories