【问题标题】:How to show custom validation message for username input?如何显示用户名输入的自定义验证消息?
【发布时间】:2019-11-29 05:25:36
【问题描述】:

我正在尝试在创建新帐户时验证用户名输入。

我有这些限制:

^(?=.{3,14}$)(?![_.])(?!.*[_.]{2})[a-zA-Z0-9._]+(?<![_.])$

^(?=.{3,14}$) 用户名长度为 3-14 个字符

(?![_.]) 用户名不能以 . 开头。或 _

(?!.*[_.]{2}) 没有 __ 或 。或 . 或 .. 在用户名内

[a-zA-Z0-9._] 允许的字符

(?&lt;![_.])$ 用户名不能以

结尾

以及其他错误消息。

这是我的方法(注意我使用 TextInputEditText 对象)

private boolean isUsernameValidated() {
    String newUsername =    et_Signup_username.getText().toString().trim();

    if (newUsername.isEmpty()) {
        etLayout_Signup_username.setError("Field can't be empty.");
        return false;
    }   else {
        etLayout_Signup_username.setError(null);
        return true;
    }

}

如果用户名以_. 消息弹出Username cant start with _ or . 开头,我如何显示自定义错误消息 或其他如上所示的错误信息?

【问题讨论】:

    标签: android validation input


    【解决方案1】:

    所以,我得到了你的问题。基本上,您试图为不同类型的错误显示不同的错误消息。

    您可以使用一个名为“AwesomeValidation”的简单库,而不是编写所有长代码。您可以简单地输入以下代码行,让库为您验证所有内容。

    mAwesomeValidation.addValidation(activity, R.id.et_Signup_username, "(?![_.])", R.string.err_name);
    

    您可以通过将其粘贴到您的 gradle 中来导入它

    implementation 'com.basgeekball:awesome-validation:4.2'

    有关此库的更多详细信息,请查看此link

    【讨论】:

    • 我试过这个。我可以注册用户名和错误无法识别
    • @andr111 我已经更新了我的答案。所以,请尝试第二种方法。它应该可以正常工作。
    • 谢谢,第二种方法有效,但第一种方法由于某种原因不起作用。
    • @andr111 很高兴听到这个消息。我已根据您的回复更新了我的答案。您现在可以验证答案是否正确。
    猜你喜欢
    • 2017-06-20
    • 1970-01-01
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    • 2014-08-08
    • 2017-09-30
    • 1970-01-01
    相关资源
    最近更新 更多