问题 如何在android中进行表单验证


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


11219
2018-05-02 05:18


起源

搜索网站“输入验证”,选择数千个答案中的任何一个 - Eric
同意@Shashank_Itmaster并将用户限制为特定数量的字符 EditText 你可以使用该属性 Android版:最大长度。 - Mudassir


答案:


尝试这个

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();
}

9
2018-05-02 06:03





或者,您可以使用 验证库 在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;

现在缺少文档但是注释示例 主页 应该让你开始。你也可以阅读 这个博客 如何在股票规则不符合您的需求的情况下创建自定义规则。

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


5
2017-10-23 10:42



由于某种原因,第一个edittext上的错误不明确 - 任何想法? - jramoyo
@jramoyo,我认为这与Android的版本有关,而不是框架。我之前遇到过类似的评论,我们发现它与框架本身无关。你能告诉我你正在测试的Android版本吗? - Ragunath Jawahar
我在4.2,4.1和2.3上测试了这个。除4.2之外,当我按退格键时错误消失 - jramoyo
@jramoyo,谢谢你的帮助。所以,问题在于Android本身。 - Ragunath Jawahar


要验证edittext,请使用android:inputtype,android:maxLength。

除此之外,可以使用正则表达式来验证表单


1
2018-05-02 05:29





您可以使用默认的Android验证API。

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

关键是要使用 setError 你的方法 EditText。它将使用提供的错误文本触发默认验证UI。


1
2018-04-08 08:21



感谢您的建议。 - Aerilys


你有两种可能性:

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

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

顺便说一句:你的问题已经存在 回答 在stackoverflow上。


0
2018-05-02 05:28