1

我有两个编辑文本,一个用于输入密码,另一个用于确认此密码。这些编辑文本的最大长度为 5。

confirmPwdEdiText.addTextChangedListener(new TextWatcher() {
 public void afterTextChanged(Editable s) {}
 public void beforeTextChanged(CharSequence s, int start, int count,
     int after) { }

 public void onTextChanged(CharSequence charSequence, int start, int before, int count)        
 {

   String pwd = passwordEdiText.getText().toString();
   String confirmaion = charSequence.toString();
   if ((pwd == null || pwd.trim().length() <= 0) &&  confirmaion.trim().length() > 0) {
           Toast.makeText(context,"Enter password",Toast.LENGTH_SHORT).show();
   } 
   else if (pwd != null && pwd.trim().length() > 0 ) {
      if(confirmaion.trim().length() == pwd.length()) {
         if (pwd.equals(confirmaion)) {
            password = pwd;
            Toast.makeText(context,"Passwords match",Toast.LENGTH_SHORT).show();
         } 
         else {
            Toast.makeText(context,"Passwords do not match",Toast.LENGTH_SHORT).show();
         }
      }
   }
 }
});

当我使用它来确认密码时,删除密码时再次显示“密码不匹配”吐司。如何在不使用按钮单击或任何其他方式的情况下以有效的方式确认密码?

提前致谢

4

4 回答 4

1

您可以添加一个按钮和按钮的 onClick 侦听器来验证您的密码。

于 2013-03-18T05:24:00.897 回答
1

您可以使用 TextWatcher

et1.addTextChangedListener(new TextWatcher() {
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

                // TODO Auto-generated method stub
            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

                // TODO Auto-generated method stub
            }

            @Override
            public void afterTextChanged(Editable s) {

                // TODO Auto-generated method stub
            }
        });
于 2013-03-18T05:29:14.227 回答
1

参考这个简单的示例,如果两个字符串都不为空或为空,您将了解其比较旧密码与新密码的简单逻辑,否则检查新旧密码长度的长度并比较两个密码是否相等。

如果您选择简单验证,则可以使用此选项

    @Override
public void afterTextChanged(Editable s) {

    System.out.println(s.toString());
    String oldPass = oldPassword.getText().toString();
    String newPass = newPassword.getText().toString();
    String confirmPass = confirmPassword.getText().toString();
    if (!oldPass.equals("") && !newPass.equals("") && oldPass.equals(newPass)) {
        Toast.makeText(getContext(), "Choose Different Password than Old Password", Toast.LENGTH_SHORT).show();
    }
    else if (!newPass.equals("") && !confirmPass.equals("") && !newPass.equals(confirmPass) && newPass.length()==confirmPass.length())
    {
        Toast.makeText(getContext(), "Choose same as New Password", Toast.LENGTH_SHORT).show();
    }
}
于 2017-02-20T12:01:53.610 回答
1

尝试这个

        private boolean checkPasswordNotMatch() {
            String pass=signupInputPassword.getText().toString();
            String cpass=signupInputPassword2.getText().toString();
            if (!pass.equals(cpass)) {
                signupInputLayoutPassword2.setErrorEnabled(true);
                signupInputLayoutPassword2.setError(getString(R.string.err_msg_password_confirm));
                signupInputLayoutPassword.setErrorEnabled(true);
                signupInputLayoutPassword.setError(getString(R.string.err_msg_password_confirm));
                return false;
        }
            signupInputLayoutPassword.setErrorEnabled(false);
            return true;
        }
于 2017-07-19T02:39:43.137 回答