您当前的位置: 首页 >  android

Kevin-Dev

暂无认证

  • 0浏览

    0关注

    544博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Android 项目必备(十六)--> 手机号 & 验证码 & 密码

Kevin-Dev 发布时间:2018-06-14 23:57:41 ,浏览量:0

在这里插入图片描述

文章目录
      • 手机号
      • 验证码
      • 密码

在我们的项目中,获取验证码、手机号验证以及密码输入是很常见的小功能。

手机号

1. 布局文件


2. 校验手机号

	/**
     * 匹配手机号的规则:[356789]是手机号第二位可能出现的数字
     */
    public static final String REGEX_MOBILE = "^[1][356789][0-9]{9}$";
	/**
     * 校验手机号
     * @param mobile
     * @return 校验通过返回true,否则返回false
     */
    public static boolean isMobile(String mobile) {
        return Pattern.matches(REGEX_MOBILE, mobile);
    }
验证码

方式一 1.TimeCountDown.java

public class TimeCountDown extends AppCompatTextView {
    private static final String TAG = TimeCountDown.class.getSimpleName();
    private static final int COUNT_DOWN_START = 1;//开始计时
    private static final int COUNT_DOWN_LOADING = 2;//计数中
    private static final int COUNT_DOWN_FINISH = 3;//计数完成
    private static final int COUNT_DOWN_ERROR = 4;//计数出错
    /**
     * 倒计时时间为60 s
     */
    private int countTime = 60;

    /**
     * 变量,用来计数当前倒计时的时间
     */
    private int mCount;

    /**
     * 倒计时之前显示的文字
     */
    private String beforeCount = "获取验证码";

    /**
     * 倒计时之后显示的文字
     */
    private String afterCount = "秒";

    /**
     * handler
     */
    private Handler mHandler;

    private Timer mTimer;
    private TimerTask mTimerTask;

    private OnTimerCountDownListener onTimerCountDownListener;

    public TimeCountDown(Context context) {
        super(context);
        init();
    }

    public TimeCountDown(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public void init() {
        mCount = countTime;
        setText(beforeCount);
        mHandler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                switch (msg.what) {
                    case COUNT_DOWN_START:
                        if (null != onTimerCountDownListener) {
                            onTimerCountDownListener.onCountDownStart();
                        }
                        mCount--;
                        break;
                    case COUNT_DOWN_LOADING:
                        if (null != onTimerCountDownListener) {
                            onTimerCountDownListener.onCountDownLoading(mCount);
                        }
                        setText(msg.arg1 + afterCount);
                        mCount--;
                        break;
                    case COUNT_DOWN_FINISH:
                        if (null != onTimerCountDownListener) {
                            onTimerCountDownListener.onCountDownFinish();
                        }
                        if (mCount = 0;i--) {
                    final int second = i;
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }

                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            if (second 
    

        

        
    


toggle_pwd_selector.xml



    
    

2. 代码使用

public class MainActivity extends AppCompatActivity {
    private EditText mPwd;
    private ToggleButton mShowPwd;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mPwd = findViewById(R.id.edt_Pwd);
        mShowPwd = findViewById(R.id.tb_show);

        mShowPwd.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
                if (isChecked) {
                    //如果选中,显示密码
                    mPwd.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
                } else {
                    //否则隐藏密码
                    mPwd.setTransformationMethod(PasswordTransformationMethod.getInstance());
                }
            }
        });
    }
}
关注
打赏
1658837700
查看更多评论
立即登录/注册

微信扫码登录

0.1218s