CountDownTimer倒计时(模拟短信验证)

内容:介绍倒计时CountDownTimer的基本使用方法。模拟短信验证

步骤:

1、继承CountDownTimer,重写onTick()、onFinish()

2、代码中new出CountDownTimer子类,传好参数,调用start()执行

代码如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.leixiansheng.countdowntimer.MainActivity">

    <TextView
        android:id="@+id/tv_getMsg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="获取短信验证码"
        android:background="@color/colorPrimaryDark"
        android:textSize="16sp"
        android:textColor="#ffffffff" />
</RelativeLayout>

 TimerCount

package com.example.leixiansheng.countdowntimer;

import android.os.CountDownTimer;
import android.widget.TextView;

/**
 * Created by Leixiansheng on 2018/7/18.
 */

public class TimerCount extends CountDownTimer {

	private TextView mTextView;


	public TimerCount(long millisInFuture, long countDownInterval, TextView textView) {
		super(millisInFuture, countDownInterval);
		mTextView = textView;
	}

	@Override
	public void onTick(long millisUntilFinished) {
		mTextView.setClickable(false);
		mTextView.setText("重新获取" + millisUntilFinished / 1000 + "秒");
	}

	@Override
	public void onFinish() {
		mTextView.setClickable(true);
		mTextView.setText("获取短信验证码");
	}
}

Main

package com.example.leixiansheng.countdowntimer;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		final TextView textView = (TextView) findViewById(R.id.tv_getMsg);
		textView.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				/**
				 * millisInFuture:要计数的总时长
				 * countDownInterval:每隔多少秒响应
				 */
				TimerCount timerCount = new TimerCount(5000, 1000, textView);
				timerCount.start();
			}
		});
	}
}

猜你喜欢

转载自blog.csdn.net/mr_leixiansheng/article/details/81110729