发送验证码倒计时功能

来源:互联网 发布:倾国倾城美人知乎 编辑:程序博客网 时间:2024/06/05 04:10

1.新建一个项目:CuntDownTimer。
2.在activity_main.xml中添加button按钮。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.example.cuntdowntimertest.MainActivity" >    <Button        android:id="@+id/button"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="点击发送验证码"/></RelativeLayout>

3.创建一个名为TimeCountUtil的类(该类为计时器)

package com.example.cuntdowntimertest;import android.os.CountDownTimer;import android.widget.Button;public class TimeCountUtil  extends CountDownTimer{     private Button mButton;        //millisInFuture为总时长。countDownInterval多久执行一次回调        public TimeCountUtil(Button button, long millisInFuture, long countDownInterval) {             super(millisInFuture, countDownInterval);            this.mButton = button;        }        @Override        public void onTick(long millisUntilFinished) {            // 按钮不可用            mButton.setEnabled(false);            String showText = millisUntilFinished / 1000 + "秒后可重新发送";            mButton.setText(showText);        }        @Override        public void onFinish() {            // 按钮设置可用            mButton.setEnabled(true);            mButton.setText("重新获取验证码");        }}

4.主MainActivity的代码。

package com.example.cuntdowntimertest;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.Toast;public class MainActivity extends Activity {        private Button mButton;        private TimeCountUtil mTimeCountUtil;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mButton = (Button) findViewById(R.id.button);        mTimeCountUtil = new TimeCountUtil(mButton, 5000, 1000);        mButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                mTimeCountUtil.start();                // TODO 请求验证码                Toast.makeText(getApplicationContext(), "请求验证码", Toast.LENGTH_SHORT).show();            }        });    }}

以上代码实现了简单的倒计时功能,按钮的样式比较简化,有兴趣的话,可对其做优化。 如有问题,望指正,大家共同进步。

0 0