2013-03-18 58 views
0

我有兩個EditTexts,一個用於輸入密碼等進行確認這些edittexts這password.Maximum長度5如何在android中確認密碼?

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

使用存儲密碼共享偏好和檢查按鈕點擊共享偏好文件。 – 2013-03-18 05:22:39

+0

對不起。我編輯了我的密碼。請檢查一下。如何使用TextWatcher確認密碼? – 2013-03-18 05:24:57

+0

用charSequence替換pwd ... bcz這個ur字符串 – duggu 2013-03-18 05:26:58

回答

0

您可以添加一個按鈕,按鈕的onClick監聽器驗證您的密碼。

+0

對不起。我編輯了我的密碼。請檢查一下 – 2013-03-18 05:27:36

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 
      } 
     }); 
+0

我知道那個。我的問題是如何確認密碼? – 2013-03-18 05:39:06

0

參考這個簡單的示例中,您將得到線索 它的簡單,如果兩個字符串不爲空或空和否則,如果舊密碼,新通比較的邏輯檢查的長度新舊密碼的長度和兩個密碼的比較是相等的。

這個可以,如果你選擇簡單的驗證使用

@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(); 
    } 
} 
+0

在if循環中添加長度條件 – santhosh 2017-02-20 12:02:50

+0

雖然此代碼片段是受歡迎的,並且可以提供一些幫助,但它會[如果包含解釋](// meta.stackexchange.com/q/114762) *和*爲什麼*這解決了這個問題。請記住,你正在爲將來的讀者回答這個問題,而不僅僅是現在問的人!請編輯您的答案以添加解釋,並指出適用的限制和假設。 – 2017-02-20 12:27:16

+0

評論這裏爲您需要的任何其他邏輯 – santhosh 2017-05-08 12:45:52

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; 
     }