我有两个EditTexts,一个用于输入密码,另一个用于确认此密码。这些edittexts的最大长度为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();
}
}
}
}
});
当我使用此确认密码时,删除密码时会再次显示“密码不匹配”吐司。如何以有效的方式确认密码而不使用按钮点击或任何其他?
先谢谢
答案 0 :(得分:0)
您可以添加一个按钮,并按下onClick Listener按钮验证您的密码。
答案 1 :(得分:0)
您可以使用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
}
});
答案 2 :(得分:0)
参考这个简单的样本,你会得到线索 如果两个字符串都不为null或为空,则将旧密码与新密码进行比较的简单逻辑,如果检查旧密码长度和新密码长度并比较两个密码,则其他情况相同。
如果您选择简单验证
,则可以使用此选项 @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();
}
}
答案 3 :(得分:0)
试试这个
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;
}