【问题标题】:Adding checkmark to a edittexted field将复选标记添加到编辑文本字段
【发布时间】:2016-06-23 04:34:36
【问题描述】:

我正在 Android 中制作表单,我想知道当用户正确输入两个密码时如何插入复选标记。我将使用本文所述的内置可绘制复选标记 (How to access checkmark drawable in Android OS?)

//variables
     private EditText inputName, inputEmail, inputPassword, inputPasswordConfirm;
private TextInputLayout inputLayoutName, inputLayoutEmail, inputLayoutPassword, inputLayoutConfirmPassword;
private Button btnNextSignUp; //button
private static final String PASSWORD_PATTERN = ".{6,20}"; //regex expression for password validatoin
private Pattern patternToMatch;
private Matcher matcherToCheck;
private boolean  validatePassword(){

   String passwordString = inputPassword.getText().toString().trim();
    //Check for if field is empty and password is valid meaning
    // it has to be greater than 6 characters
    if (passwordString.isEmpty() || !isPasswordValid(passwordString)){
        inputLayoutPassword.setError("Enter password greater than 6 characters");
        requestFocus(inputEmail);
        return false;
    }
    else{
        //set error layout to false if password has been filled with characters
        inputLayoutPassword.setErrorEnabled(false);
    }
    return true;
}


/**
 * helper method make sure password is greater than 6
 * @param passwordEntered for validation
 * @return true valid password, false invalid password
 */
private boolean isPasswordValid(String passwordEntered){

    patternToMatch = Pattern.compile(PASSWORD_PATTERN);
    matcherToCheck = patternToMatch.matcher(passwordEntered);
    return  matcherToCheck.matches();
}



 /**
    * isTwoPasswordsMatching
 * @param none
 * @returns returns confirmed password match
 * check the two passwords are equal to each other
 * */
private boolean isTwoPasswordsMatching(){
   //password field one
    String passwordString = inputPassword.getText().toString().trim();
    //password field two confirm password field --> convert to string
      String passwordConfirmString = inputPasswordConfirm.getText().toString().trim();
    if (passwordString.equals(passwordConfirmString)){
        //field is valid add check mark or change underline field to green

    }
}

//get error to appear
private void requestFocus(View view){
    if (view.requestFocus()){             
     getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
    }
}

【问题讨论】:

    标签: android forms password-confirmation


    【解决方案1】:

    试试 setCompoundDrawables

    Drawable drawable = ResourcesCompat.getDrawable(getResources(),R.drawable.wen, null);
    drawable.setBounds(0, 0, drawable.getMinimumWidth(),
    drawable.getMinimumHeight());
    edit.setCompoundDrawables(drawable, null, null, null);
    

    你也可以使用

    editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.drawableRight, 0);
    

    欲了解更多信息,请参阅Android Docs

    【讨论】:

    • 您好,我打算把这个功能放到 isTwoPasswordsMatching() 方法中,我应该在里面实现这个功能吗?
    猜你喜欢
    • 2012-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多