android-saripaar:Android UI输入验证框架
2016-03-07 16:45
555 查看
android-saripaar 是一个基于规则的Android UI输入验证库,通过Annotation来标注验证规则。号称是最简单的Android UI验证规则库。
Saripaar特性:
使用Annotation标注的生命性规则
可扩展性
支持同步/异步验证,无线担心线程问题
使用简单,只需下载 jar包,放到项目的libs目录下即可
使用规则来隔离验证逻辑
兼容其他Annotation框架,例如 AndroidAnnotations, RoboGuice,
使用起来当然也是很简单的,具体步骤如下:
1. 使用android-saripaar提供的Annotation来标注验证规则
Java
@Required(order = 1)
@Email(order = 2)
private EditText emailEditText;
@Password(order = 3)
@TextRule(order = 4, minLength = 6, message = "Enter at least 6 characters.")
private EditText passwordEditText;
@ConfirmPassword(order = 5)
private EditText confirmPasswordEditText;
@Checked(order = 6, message = "You must agree to the terms.")
private CheckBox iAgreeCheckBox;
每个规则都是顾名思义的,其中
2. 初始化一个Validator
Java
public void onCreate() {
super.onCreate();
// Code…
validator = new Validator(this);
validator.setValidationListener(this);
// More code…
}
需要一个
3. 实现一个ValidationListener
Java
public class RegistrationActivity implements ValidationListener {
public void onValidationSucceeded() {
Toast.makeText(this, "Yay! we got it right!", Toast.LENGTH_SHORT).show();
}
public void onValidationFailed(View failedView, Rule<?> failedRule) {
String message = failedRule.getFailureMessage();
if (failedView instanceof EditText) {
failedView.requestFocus();
((EditText) failedView).setError(message);
} else {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
}
}
4. 发起验证
Java
registerButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
validator.validate();
}
});
Validator.validate() 发起验证,并通过 ValidationListener 来通知验证结果。调用函数
只需4步即可完成一个界面的输入验证。
Read more: http://blog.chengyunfeng.com/?p=530#ixzz42ClpKpaJ
Saripaar特性:
使用Annotation标注的生命性规则
可扩展性
支持同步/异步验证,无线担心线程问题
使用简单,只需下载 jar包,放到项目的libs目录下即可
使用规则来隔离验证逻辑
兼容其他Annotation框架,例如 AndroidAnnotations, RoboGuice,
使用起来当然也是很简单的,具体步骤如下:
1. 使用android-saripaar提供的Annotation来标注验证规则
Java
@Required(order = 1)
@Email(order = 2)
private EditText emailEditText;
@Password(order = 3)
@TextRule(order = 4, minLength = 6, message = "Enter at least 6 characters.")
private EditText passwordEditText;
@ConfirmPassword(order = 5)
private EditText confirmPasswordEditText;
@Checked(order = 6, message = "You must agree to the terms.")
private CheckBox iAgreeCheckBox;
1 2 3 4 5 6 7 8 9 10 11 12 13 | @Required(order = 1) @Email(order = 2) private EditText emailEditText; @Password(order = 3) @TextRule(order = 4, minLength = 6, message = "Enter at least 6 characters.") private EditText passwordEditText; @ConfirmPassword(order = 5) private EditText confirmPasswordEditText; @Checked(order = 6, message = "You must agree to the terms.") private CheckBox iAgreeCheckBox; |
order 属性是必须的,用来告诉Saripaar这些输入规则的验证顺序。
2. 初始化一个Validator
Java
public void onCreate() {
super.onCreate();
// Code…
validator = new Validator(this);
validator.setValidationListener(this);
// More code…
}
1 2 3 4 5 6 7 8 9 | public void onCreate() { super.onCreate(); // Code… validator = new Validator(this); validator.setValidationListener(this); // More code… } |
Validator和
ValidationListener。后者用来接收验证结果通知。
3. 实现一个ValidationListener
Java
public class RegistrationActivity implements ValidationListener {
public void onValidationSucceeded() {
Toast.makeText(this, "Yay! we got it right!", Toast.LENGTH_SHORT).show();
}
public void onValidationFailed(View failedView, Rule<?> failedRule) {
String message = failedRule.getFailureMessage();
if (failedView instanceof EditText) {
failedView.requestFocus();
((EditText) failedView).setError(message);
} else {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public class RegistrationActivity implements ValidationListener { public void onValidationSucceeded() { Toast.makeText(this, "Yay! we got it right!", Toast.LENGTH_SHORT).show(); } public void onValidationFailed(View failedView, Rule<?> failedRule) { String message = failedRule.getFailureMessage(); if (failedView instanceof EditText) { failedView.requestFocus(); ((EditText) failedView).setError(message); } else { Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); } } } |
onValidationSucceeded()– 当所有验证规则都通过时调用该函数
onValidationFailed(View, Rule<?>)– 当验证失败时调用该函数,View为失败的控件,Rule为具体的规则.
4. 发起验证
Java
registerButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
validator.validate();
}
});
1 2 3 4 5 6 | registerButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { validator.validate(); } }); |
Validator.validateAsync()可以在一个AsyncTask中发起验证。
只需4步即可完成一个界面的输入验证。
Read more: http://blog.chengyunfeng.com/?p=530#ixzz42ClpKpaJ
相关文章推荐
- jsp页面让文字放大---------内含mmgrid,的jquey插件
- requirejs入门
- 在控制台查看CPUID的命令
- iOS中多个UITextField的键盘处理
- iOS UITableViewCell透明度 和 cell文字居中
- Uiautomator测试分享(一)
- bigbluebutton开发
- 117.Which statements are true regarding the WHERE and HAVING clauses in a SELECT statement?
- ensemble 总结 Kaggle-Ensemble-Guide
- make Image uImage与zImage的区别
- java String和StringBuilder、StringBuffer浅谈
- error: The requested URL returned error: 401 Unauthorized while accessing
- iOS mask 层 UIBezierPath path 放大
- require或include相对路径多层嵌套引发的问题
- UISegmentedControl设置样式(圆角,边框颜色)
- UITabBarItem title 和self.title设置不同的标题
- poj 2478 Farey Sequence(欧拉函数)
- iOS Core Animation Advanced Techniques的学习笔记(五)
- Requests模块官方文档
- iOS 点击键盘return按钮 文本框UiTextField 自动换行