您的位置:首页 > 产品设计 > UI/UE

android-saripaar:Android UI输入验证框架

2016-03-07 16:45 555 查看
android-saripaar 是一个基于规则的Android UI输入验证库,通过Annotation来标注验证规则。号称是最简单的Android UI验证规则库。

Saripaar特性:

使用Annotation标注的生命性规则
可扩展性
支持同步/异步验证,无线担心线程问题
使用简单,只需下载 jar包,放到项目的libs目录下即可
使用规则来隔离验证逻辑
兼容其他Annotation框架,例如  AndroidAnnotationsRoboGuice,
使用起来当然也是很简单的,具体步骤如下:

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.validate() 发起验证,并通过 ValidationListener 来通知验证结果。调用函数 
Validator.validateAsync()
 可以在一个AsyncTask中发起验证。

 

只需4步即可完成一个界面的输入验证。

Read more: http://blog.chengyunfeng.com/?p=530#ixzz42ClpKpaJ
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: