Android手机验证码倒计时控件,最新Android面试合集

Android手机验证码倒计时控件,最新Android面试合集,第1张

Android手机验证码倒计时控件,最新Android面试合集

mFinishListener = listener;

}

public interface onFinishListener {

void onFinish();

}

public void setonSendCheckCodeListener(onSendCheckCodeListener listener) {

mSendCheckCodeListener = listener;

}

public interface onSendCheckCodeListener {

void sendCheckCode();

}

public void performonClick(boolean phoneNumber) {

if (!phoneNumber) {

Toast.makeText(getContext(), “手机号格式不正确”, Toast.LENGTH_SHORT).show();

return;

}

if (canSend) {

setMillisecond(60 * 1000); // 每次发送之前 要将倒计时的时间更新为最初的时间

startSend();//执行发送验证码的逻辑

canSend = false;// 1 分钟之内不能重复发送

}

}

}

用法如下:

package com.qj.checkcodecountdown;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.text.TextUtils;

import android.view.View;

import android.widget.EditText;

public class MainActivity extends AppCompatActivity {

private CheckCodeCountDown mCheckCodeCountDown;

private EditText mPhoneNumber;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initView();

initData();

initListener();

}

private void initView() {

mCheckCodeCountDown = (CheckCodeCountDown) findViewById(R.id.checkcode);

mPhoneNumber = (EditText) findViewById(R.id.phone_number);

}

private void initData() {

}

private void initListener() {

mCheckCodeCountDown.setonClickListener(new View.onClickListener() {

@Override

public void onClick(View view) {

//必须调用 , 输入框中输入的是手机号 true , 否则 false ,这么做是为了防止不是手机号也进入倒计时

boolean phoneNumber = isPhoneNumber(mPhoneNumber.getText().toString());

mCheckCodeCountDown.performonClick(phoneNumber);

}

});

mCheckCodeCountDown.setonSendCheckCodeListener(new CheckCodeCountDown.onSendCheckCodeListener() {

@Override

public void sendCheckCode() {

// TODO 向手机发送验证码的逻辑

}

});

mCheckCodeCountDown.setonFinishListener(new CheckCodeCountDown.onFinishListener() {

@Override

public void onFinish() {

// TODO 计时结束后的 *** 作

mCheckCodeCountDown.setText(“重新发送”);

}

});

}

private boolean isPhoneNumber(String mobiles) {

String telRegex = “[1][3578]d{9}”;

if (TextUtils.isEmpty(mobiles)) return false;

else return mobiles.matches(telRegex);

}

}

activity_main

xmlns:android=“http://schemas.android.com/apk/res/android”

xmlns:tools=“http://schemas.android.com/tools”

android:id="@+id/activity_main"

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.qj.checkcodecountdown.MainActivity”>

android:id="@+id/phone_number"

android:layout_width=“200dp”

android:layout_height=“50dp”

android:layout_centerHorizontal=“true”

android:gravity=“center”

android:hint=“请输入手机号”

android:inputType=“number”/>

android:id="@+id/checkcode"

android:layout_width=“75dp”

android:layout_height=“35dp”

android:layout_below="@id/phone_number"

android:layout_centerHorizontal=“true”

android:layout_marginTop=“5dp”

android:background="@drawable/user_get_check_code_border_shape"

android:gravity=“center”

android:text=“点击发送”/>

user_get_check_code_shape

android:width=“1dp”

android:color="#1bb5d7"/>


源码下载地址

-我的模块 注册 修改密码页面获取验证码控件的背景外框–>

android:width=“1dp”

android:color="#1bb5d7"/>


源码下载地址

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5713232.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存