Android表单验证UI库

Ana*_*sia 26 validation user-interface android

iOS US2FormValidator库用于用户输入验证(参见下图).我认为,当某些内容无法验证时,该库优于默认弹出警报.

US2FormValidator预览

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

Rag*_*har 65

您在屏幕截图上显示的弹出效果可以使用Android setError(String)EditText窗口小部件上的内置方法实现.

此外,您可以使用我撰写的Android Saripaar库来充分利用注释的强大功能.

首先添加库:

compile 'com.mobsandgeeks:android-saripaar:2.0.2'
Run Code Online (Sandbox Code Playgroud)

该库非常易于使用.在您的活动中,为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;
Run Code Online (Sandbox Code Playgroud)

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

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

你会收到回调onSuccessonFailure方法ValidationListener.

如果您想在上图中显示弹出窗口,请执行以下操作,

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());
    }
}
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.

  • Android Saripaar绝对是您要走的路!:d (2认同)

Sha*_*raf 28

Android具有极易使用的内置验证机制,足够强大.请参阅以下链接:http: //blog.donnfelker.com/2011/11/23/android-validation-with-edittext/


小智 5

仅在三个步骤内实现Android内部验证.开发人员应该专注于他们令人敬畏的代码,并让库来做样板.

三种验证类型:

  • TEXT_INPUT_LAYOUT
  • UNDERLABEL
  • 着色
  • BASIC

我给你的UNDERLABEL验证示例.

在android中实现验证的步骤:

声明验证样式:

AwesomeValidation mAwesomeValidation = new AwesomeValidation(UNDERLABEL);
mAwesomeValidation.setContext(this); 
Run Code Online (Sandbox Code Playgroud)

添加验证;

mAwesomeValidation.addValidation(activity, R.id.edt_name, “[a-zA-Z\\s]+”, R.string.err_name); 
mAwesomeValidation.addValidation(activity, R.id.edt_tel, RegexTemplate.TELEPHONE, R.string.err_tel);
Run Code Online (Sandbox Code Playgroud)

设置何时触发验证.

findViewById(R.id.btn_done).setOnClickListener(new View.OnClickListener()
    @Override
    public void onClick(View v)
    mAwesomeValidation.validate();
);
Run Code Online (Sandbox Code Playgroud)

多数民众赞成,这里是完整的源代码

验证android  -  dasnic.

  • 那么为什么你认为它回答了他的问题呢?他要求具体显示验证错误信息的表示方法. (3认同)