【问题标题】:how to do form validation in android如何在android中进行表单验证
【发布时间】:2011-05-02 05:18:26
【问题描述】:

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

【问题讨论】:

  • 在网站上搜索“输入验证”选择数千个答案中的任何一个
  • 同意@Shashank_Itmaster 并将用户限制为EditText 中特定数量的字符,您可以使用属性android:maxLength

标签: android


【解决方案1】:

试试这个

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

【讨论】:

    【解决方案2】:

    或者,您可以使用 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:我是这个库的作者。

    【讨论】:

    • 由于某种原因,第一次编辑文本的错误没有清除 - 有什么想法吗?
    • @jramoyo,我认为这与 Android 的版本特别相关,而不是框架。我之前也遇到过类似的cmets,我们发现它与框架本身无关。请告诉我您在哪个版本的 Android 上进行测试?
    • 我已经在 4.2、4.1 和 2.3 上进行了测试。除 4.2 以外,按退格键时错误消失
    • @jramoyo,感谢您的帮助。所以,问题出在 Android 本身。
    【解决方案3】:

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

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

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

    【讨论】:

      【解决方案4】:

      对于edittext的验证,使用android:inputtype, android:maxLength。

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

      【讨论】:

        【解决方案5】:

        你有两种可能:

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

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

        顺便说一句:你的问题已经在 stackoverflow 上answered

        【讨论】:

          猜你喜欢
          • 2017-11-28
          • 1970-01-01
          • 2017-04-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-03-12
          • 1970-01-01
          • 2021-08-01
          相关资源
          最近更新 更多