Ana*_*sia 26 validation user-interface android
iOS 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()在任何事件监听器内部调用.
你会收到回调onSuccess和onFailure方法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)
希望有所帮助.
Sha*_*raf 28
Android具有极易使用的内置验证机制,足够强大.请参阅以下链接:http: //blog.donnfelker.com/2011/11/23/android-validation-with-edittext/
小智 5
仅在三个步骤内实现Android内部验证.开发人员应该专注于他们令人敬畏的代码,并让库来做样板.
三种验证类型:
我给你的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)
多数民众赞成,这里是完整的源代码
.
| 归档时间: |
|
| 查看次数: |
33222 次 |
| 最近记录: |