Android表单验证UI库

fcipmucu  于 2022-12-25  发布在  Android
关注(0)|答案(3)|浏览(142)

iOS US2FormValidator库用于用户输入验证(见下图),我认为该库比默认的当一些东西没有验证时弹出警报要好。

我正在寻找如何在Android上做这些事情。有一些US2FormValidator的Android类似物吗?

kyks70gy

kyks70gy1#

您在屏幕截图中显示的弹出效果可以通过在EditText小部件上使用Android内置的setError(String)方法来实现。
此外,您还可以使用我编写的Android Saripaar库来利用注解的强大功能。
首先添加库:

compile 'com.mobsandgeeks:android-saripaar:2.0.2'

该库非常简单易用,在Activity中标注您想要验证的View引用,如下例所示。

@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方法上接收回调。
如果您想显示如上图所示的弹出窗口,请执行以下操作:

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

vsmadaxz2#

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

guykilcj

guykilcj3#

我刚刚遇到了ValidationKomensky,您可能会发现它很有用
https://github.com/inmite/android-validation-komensky

相关问题