为啥电子邮件验证总是在我的应用程序中出错? [复制]
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() > 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();
【讨论】:
以上是关于为啥电子邮件验证总是在我的应用程序中出错? [复制]的主要内容,如果未能解决你的问题,请参考以下文章