如何在android中进行表单验证

use*_*936 11 android

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

小智 9

试试这个

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(".+@.+\\.[a-z]+");
    Matcher matcher = pattern.matcher(email);
    emailcheck = matcher.matches();
}
Run Code Online (Sandbox Code Playgroud)


Rag*_*har 5

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

@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;
Run Code Online (Sandbox Code Playgroud)

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

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


alo*_*pix 0

你有两种可能性:

  • 监听字段内容的更改并运行该特定字段的验证或
  • 监听提交按钮的点击并验证提交时所有字段的内容。

其他验证与其他 Java 应用程序中的验证相同:只需测试您的约束即可。

顺便说一句:你的问题已经在 stackoverflow 上得到了解答