首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android表单验证UI库

Android表单验证UI库
EN

Stack Overflow用户
提问于 2012-08-02 19:52:16
回答 3查看 35.2K关注 0票数 26

有一个用于用户输入验证的iOS US2FormValidator库(见下图)。我认为这个库比默认的在某些东西没有验证时弹出警告要好。

我正在寻找如何在Android上做这样的事情。有没有类似于US2FormValidator的安卓系统?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-22 21:48:50

您在屏幕截图上显示的弹出式效果可以在EditText小部件上使用安卓内置的setError(String)方法来实现。

此外,您还可以使用我编写的Android Saripaar库来利用注释的强大功能。

首先添加库:

代码语言:javascript
复制
compile 'com.mobsandgeeks:android-saripaar:2.0.2'

这个库使用起来非常简单。在您的活动中,注释您想要验证的View引用,如下例所示。

代码语言:javascript
复制
@Order(1)
private EditText fieldEditText;

@Order(2)
@Checked(message = "You must agree to the terms.")
private CheckBox iAgreeCheckBox;

@Order(3)
@Length(min = 3, message = "Enter atleast 3 characters.")
@Pattern(regex = "[A-Za-z]+", message = "Should contain only alphabets")
private TextView regexTextView;

@Order(4)
@Password(min = 6, scheme = Password.Scheme.ALPHA_NUMERIC_MIXED_CASE_SYMBOLS)
private EditText passwordEditText;

@Order(5)
@ConfirmPassword
private EditText confirmPasswordEditText;

order属性指定必须验证字段的顺序。

onCreate()方法中实例化一个新Validator对象。并在任何事件侦听器中调用validator.validate()

您将收到ValidationListeneronSuccessonFailure方法的回调。

如果要显示如上图所示弹出窗口,请执行以下操作,

代码语言:javascript
复制
public void onValidationFailed(View failedView, Rule<?> failedRule) {
    if (failedView instanceof Checkable) {
        Toast.makeText(this, failedRule.getFailureMessage(), Toast.LENGTH_SHORT).show();
    } else if (failedView instanceof TextView) {
        TextView view = (TextView) failedView;
        view.requestFocus();
        view.setError(failedRule.getFailureMessage());
    }
}

希望这能有所帮助。

票数 66
EN

Stack Overflow用户

发布于 2012-08-17 21:21:12

Android有非常易于使用的内置验证机制,这已经足够好用了。请参阅以下链接:http://blog.donnfelker.com/2011/11/23/android-validation-with-edittext/

票数 28
EN

Stack Overflow用户

发布于 2014-01-26 04:39:49

我刚接触到ValidationKomensky,您可能会发现它很有用

https://github.com/inmite/android-validation-komensky

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11776829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档