Android获取验证码倒计时实现代码

本文实例为大家分享了Android获取验证码倒计时的具体代码,供大家参考,具体内容如下

1. 验证码输入框和获取验证码按钮布局

xml代码:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

/**

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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

//倒计时函数

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. 清除倒计时函数,解决验证码输入正确后停止计时

?

1

2

3

4

5

6

7

8

9

10

private void clearTimer() {

if (task != null) {

task.cancel();

task = null;

}

if (timer != null) {

timer.cancel();

timer = null;

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_36478920/article/details/78326305

本文链接:https://my.lmcjl.com/post/9816.html

展开阅读全文

4 评论

留下您的评论.