2017-05-07 31 views
0

我想驗證電子郵件地址。哪個用戶在我的表格中輸入,但它總是給「請輸入有效的電子郵件地址」錯誤,即使我寫了真正的電子郵件地址。在哪裏,我應該做什麼修正電子郵件模式或如果條件在我的代碼?幫我。爲什麼電子郵件驗證在我的應用程序中總是出錯?

這是我的java文件:

IndividualuserFragment.java:

  public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) { 

       View rootview = inflater.inflate(R.layout.fragment_individualuser, container, false); 
       save = (Button) rootview.findViewById(R.id.save); 
       cancel = (Button) rootview.findViewById(R.id.cancel); 

       email = (EditText) rootview.findViewById(R.id.editemail); 
       password = (EditText) rootview.findViewById(R.id.editpassword); 

final String emailPattern = "^[_A-Za-z0-9-]+(\\\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\\\.[A-Za-z0-9]+)*(\\\\.[A-Za-z]{2,})$"; 

    fm =getFragmentManager(); 
    cancel.setOnClickListener(new View.OnClickListener(){ 

        @Override 
        public void onClick(View v) { 
         fm.beginTransaction().replace(R.id.content_frame,new LoginFragment()).commit(); 
        } 
       }); 
       save.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
          if(!(email.getText().toString().matches(emailPattern) && email.getText().toString().length() > 0)){ 
          email.setError("please valid email address"); 
          email.requestFocus(); 
         } 
    else if(!(password.getText().toString().length()>=6 && password.getText().toString().length()<=10)){ 
          password.setError("please enter valid password"); 
          password.requestFocus(); 
         }else { 

     //    AsyncTask obj = new AsyncDemo(); 
     //    obj.execute(); 
          new myasyncDemo().execute(); 
         } 
        } 
       }); 


       return rootview; 
      } 
+0

試試這個.. http://stackoverflow.com/questions/12947620/email-address-validation-in-android-on-edittext –

回答

3

您可以利用現有方法的電子郵件驗證。

private boolean isValidEmail(final String email) { 
    return !TextUtils.isEmpty(email) 
        && Patterns.EMAIL_ADDRESS.matcher(email).matches(); 
    } 
1

嘗試替換email.getText().toString().length() > 0並使用TextUtils.isEmpty(email.getText().toString())

您需要先檢查空字符串條件,然後匹配您的電子郵件條件。

所以你的病情看起來象下面這樣:

if(TextUtils.isEmpty(email.getText().toString()) || !Patterns.EMAIL_ADDRESS.matcher(email.getText().toString()).matches() 
{ 
    email.setError("please valid email address"); 
    email.requestFocus(); 
} 
相關問題