如何在android中进行表单validation

我有一份registry格,我需要在提交前进行validation。 表单包含以下字段:姓名,电子邮件,联系电话和密码。 我需要名称有一个值,电子邮件要有正确的格式,联系号码应至少为10个数字,密码至少为6个字符。

尝试这个

 vUsername = etUsername.getText().toString(); vFirstname = etFirstname.getText().toString(); vEmail = etEmail.getText().toString(); vPwd = etPwd.getText().toString(); vCpwd = etCpwd.getText().toString(); if("".equalsIgnoreCase(vUsername) //vUsername.equalsIgnoreCase("") could lead to NPE || "".equalsIgnoreCase(vFirstname) || "".equalsIgnoreCase(vEmail) || "".equalsIgnoreCase(vPwd) || "".equalsIgnoreCase(vCpwd) ) { Toast.makeText(userRegistration.this, "All Fields Required.", Toast.LENGTH_SHORT).show(); } checkemail(vEmail); if(emailcheck==true) { // your code here } public void checkemail(String email) { Pattern pattern = Pattern.compile(".+@.+\\.[az]+"); Matcher matcher = pattern.matcher(email); emailcheck = matcher.matches(); } 

或者,您可以使用validation库在Android上执行validation。 它由注释驱动,因此减少了大量的锅炉板代码。 使用此应用程序解决时的用例如下所示:

 @Required(order = 1) @Email(order = 2) private EditText emailEditText; @Password(order = 3) @TextRule(order = 4, minLength = 6, message = "Enter at least 6 characters.") private EditText passwordEditText; @ConfirmPassword(order = 5) private EditText confirmPasswordEditText; @Checked(order = 6, message = "You must agree to the terms.") private CheckBox iAgreeCheckBox; 

现在缺少文档,但主页上的注释示例应该可以帮助您入门。 如果库存规则不符合您的需求,您还可以阅读此博客 ,了解如何创建自定义规则。

PS:我是这个图书馆的作者。

要validationedittext,请使用android:inputtype,android:maxLength。

除此之外,可以使用正则expression式来validation表单

您可以使用默认的AndroidvalidationAPI。

这是一个非常简单的教程: http : //blog.donnfelker.com/2011/11/23/android-validation-with-edittext/

关键是在EditText上使用setError方法。 它将使用提供的错误文本触发默认validationUI。

你有两种可能性:

  • 听取对该字段内容的更改并运行该特定字段的validation或
  • 听取提交按钮单击并validation提交中所有字段的内容。

其他validation与其他Java应用程序完全相同:只测试您的约束。

BTW:您的问题已在stackoverflow上得到解答 。