Android 获取验证码倒计时实现

Android 获取验证码倒计时实现

 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36478920/article/details/78326305
1. 验证码输入框和获取验证码按钮布局

xml代码:

        <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代码:

/**
 * 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. 倒计时函数

    //倒计时函数
    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. 清除倒计时函数,解决验证码输入正确后停止计时
private void clearTimer() {
        if (task != null) { task.cancel(); task = null; } if (timer != null) { timer.cancel(); timer = null; } }

 

转载于:https://www.cnblogs.com/yelanggu/p/10754004.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值