首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Android 获取验证码倒计时实现

Android 获取验证码倒计时实现

作者头像
网罗开发
发布2021-01-29 14:52:52
发布2021-01-29 14:52:52
97600
代码可运行
举报
文章被收录于专栏:网罗开发网罗开发
运行总次数:0
代码可运行
1. 验证码输入框和获取验证码按钮布局

xml代码:

代码语言:javascript
代码运行次数:0
运行
复制
        <LinearLayout
           android:layout_width="match_parent"
           android:layout_height="50dp"
           android:background="@color/white"
           android:orientation="horizontal" >           <EditText
               android:id="@+id/phonetext"
               android:layout_width="0dp"
               android:layout_height="match_parent"
               android:layout_weight="1"
               android:layout_marginLeft="15dp"
               android:layout_gravity="center_vertical"
               android:inputType="number"
               android:hint="请输入短信验证码"
               android:background="@null"/>           <Button
               android:id="@+id/timebutton"
               android:layout_width="wrap_content"
               android:layout_height="30dp"
               android:layout_marginRight="15dp"
               android:layout_marginTop="10dp"
               android:textSize="16dp"
               android:background="@drawable/tv_timemessage_bg"
               android:text="获取"
               />       </LinearLayout>

效果如下:

效果图

2. 根据id设置Button点击事件触发倒计时

JAVA代码:

代码语言:javascript
代码运行次数:0
运行
复制
/**
* Created by fby on 2017/9/11.
*/
public class ChargepsdActivity extends Activity {   private Button timeButton;   @Override
   protected void onCreate(@Nullable Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_chargepsd);       timeButton = (Button) findViewById(R.id.timebutton);
       //new倒计时对象,总共的时间,每隔多少秒更新一次时间
       final MyCountDownTimer myCountDownTimer = new MyCountDownTimer(60000,1000);       //设置Button点击事件触发倒计时
       timeButton.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View view) {
               myCountDownTimer.start();
           }
       });   }
3. 倒计时函数
代码语言:javascript
代码运行次数:0
运行
复制

   //倒计时函数
   private class MyCountDownTimer extends CountDownTimer {       public MyCountDownTimer(long millisInFuture, long countDownInterval) {
           super(millisInFuture, countDownInterval);
       }       //计时过程
       @Override
       public void onTick(long l) {
           //防止计时过程中重复点击
           timeButton.setClickable(false);
           timeButton.setText(l/1000+"秒");       }       //计时完毕的方法
       @Override
       public void onFinish() {
           //重新给Button设置文字
           timeButton.setText("重新获取");
           //设置可点击
           timeButton.setClickable(true);
       }
   }}
4. 清除倒计时函数,解决验证码输入正确后停止计时
代码语言:javascript
代码运行次数:0
运行
复制
private void clearTimer() {
       if (task != null) {
           task.cancel();
           task = null;
       }
       if (timer != null) {
           timer.cancel();
           timer = null;
       }
   }

希望可以帮助大家 如果哪里有什么不对或者不足的地方,还望读者多多提意见或建议

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-10-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网罗开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 验证码输入框和获取验证码按钮布局
  • 2. 根据id设置Button点击事件触发倒计时
  • 3. 倒计时函数
  • 4. 清除倒计时函数,解决验证码输入正确后停止计时
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档