android登录问题

今天复习了一下android开发登录的功能!

1.观察者模式校验前端输入数据

// 校验账号不能为空且必须是中国大陆手机号(宽松模式匹配)
private boolean isTelphoneValid(String account) {
    if (account == null) {
        return false;
    }
    // 首位为1, 第二位为3-9, 剩下九位为 0-9, 共11位数字
    String pattern = "^[1]([3-9])[0-9]{9}$";
    Pattern r = Pattern.compile(pattern);
    Matcher m = r.matcher(account);
    return m.matches();
}

密码要求不少于6位

// 校验密码不少于6位
private boolean isPasswordValid(String password) {
    return password != null && password.trim().length() > 5;
}

而且我实现了EditText的setOnFocusChangeListener方法,根据输入数据的类型调用对应的方法进行校验。这样就可以在输入框改变焦点的时候进行校验,判断输入格式是否正确,如果错误,则会在右侧出现错误提示。

private void setOnFocusChangeErrMsg(EditText editText,String inputType, String errMsg){
        editText.setOnFocusChangeListener(
                new View.OnFocusChangeListener() {
                    @Override
                    public void onFocusChange(View v, boolean hasFocus) {
                        String inputStr = editText.getText().toString();
                        if (!hasFocus){
                            if(inputType == "phone"){
                                if (isTelphoneValid(inputStr)){
                                    editText.setError(null);
                                }else {
                                    editText.setError(errMsg);
                                }
                            }
                            if (inputType == "password"){
                                if (isPasswordValid(inputStr)){
                                    editText.setError(null);
                                }else {
                                    editText.setError(errMsg);
                                }
                            }
                        }
                    }
                }
        );
    }

 

posted @ 2024-04-02 17:12  小张睡醒了  阅读(19)  评论(0)    收藏  举报