我有一份注册表格,我需要在提交前进行验证。表单包含以下字段:姓名,电子邮件,联系电话和密码。我需要名称有一个值,电子邮件要有正确的格式,联系号码应至少为10个数字,密码至少为6个字符。
答案 0 :(得分: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();
}
答案 1 :(得分:5)
或者,您可以使用validation library在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;
现在缺少文档,但home page上的注释示例应该可以帮助您入门。如果库存规则不符合您的需求,您还可以阅读this blog有关如何创建自定义规则的信息。
PS:我是这个图书馆的作者。
答案 2 :(得分:1)
用于验证edittext,使用android:inputtype,android:maxLength。
除此之外,可以使用正则表达式验证表单
答案 3 :(得分:1)
您可以使用默认的Android验证API。
这是一个非常简单的教程:http://blog.donnfelker.com/2011/11/23/android-validation-with-edittext/
关键是在setError
上使用EditText
方法。它将使用提供的错误文本触发默认验证UI。
答案 4 :(得分:0)
您有两种可能性:
其他验证与其他Java应用程序中的验证相同:只测试您的约束。
BTW:您的问题在stackoverflow上已经是answered。