有用于用户输入验证的iOS US2FormValidator库(参见下图)。我认为,当某些内容无法验证时,该库优于默认弹出警报。
我正在寻找如何在Android上执行此类操作。是否有一些US2FormValidator的Android类似物?
答案 0 :(得分:63)
您在屏幕截图中显示的弹出效果可以使用Android setError(String)
小部件上的内置EditText
方法实现。
此外,您可以使用我创作的Android Saripaar库充分利用注释的强大功能。
首先添加库:
compile 'com.mobsandgeeks:android-saripaar:2.0.2'
该库使用起来非常简单。在您的活动中,为您要验证的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()
。
您将收到onSuccess
的{{1}}和onFailure
方法的回调。
如果您想在上图中显示弹出窗口,请执行以下操作,
ValidationListener
希望有所帮助。
答案 1 :(得分:28)
Android具有极易使用的内置验证机制,足够强大。请参阅以下链接: http://blog.donnfelker.com/2011/11/23/android-validation-with-edittext/
答案 2 :(得分:5)
仅在三个步骤内实施Android验证。开发人员应该专注于他们令人敬畏的代码,让图书馆做样板。
三种验证类型:
我将举例说明UNDERLABEL验证。
在Android中实现验证的步骤:
声明验证样式:
AwesomeValidation mAwesomeValidation = new AwesomeValidation(UNDERLABEL);
mAwesomeValidation.setContext(this);
添加验证;
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);
设置何时触发验证。
findViewById(R.id.btn_done).setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
mAwesomeValidation.validate();
);
多数民众赞成,full source code
答案 3 :(得分:4)