2017-05-07 3 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(); 
} 
関連する問題