为啥电子邮件验证总是在我的应用程序中出错? [复制]

Posted

技术标签:

【中文标题】为啥电子邮件验证总是在我的应用程序中出错? [复制]【英文标题】:why email validation always gives error in my application? [duplicate]为什么电子邮件验证总是在我的应用程序中出错? [复制] 【发布时间】:2017-10-05 12:22:34 【问题描述】:

我正在尝试验证电子邮件添加。哪个用户在我的表单中输入但它总是给出“请输入有效的电子邮件地址”错误,即使我写的是真实的电子邮件地址。我应该在哪里以及我应该在电子邮件模式或我的代码中的 if 条件下做什么更正?帮帮我。

这是我的 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;
            

【问题讨论】:

试试这个..***.com/questions/12947620/… 【参考方案1】:

尝试替换email.getText().toString().length() &gt; 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();

【讨论】:

【参考方案2】:

您可以利用现有的电子邮件验证方法。

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

【讨论】:

以上是关于为啥电子邮件验证总是在我的应用程序中出错? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的解算没出错,但是没有计算结果

为啥即使电子邮件经过验证,电子邮件验证仍然存在?

为啥这个验证总是需要我?

为啥当我在我的 ArrayList 上输入确切的名称时,“包含”方法返回 false? [复制]

如何在android中验证电子邮件ID? [复制]

为啥当我推送我的应用程序时我的 cli 会出错? [复制]