சரிபார் - sari-paar (Tamil for "to check", "verify" or "validate")
Android Saripaar is a simple, yet powerful rule-based UI validation library for Android. It is the SIMPLEST validation library available for Android.
- Declarative style validation powered by Annotations.
- Does both Synchronous and Asynchronous validations, you don't have to worry about threading.
- Works with Stock Android Widgets, no custom view dependencies.
- Quick to setup, just download the jar and include it in your
libs
project folder. - Takes most of your validation logic out of your code.
- Compatible with other annotation frameworks such as AndroidAnnotations, RoboGuice, etc.,
Step 1 - Annotate your widgets using Saripaar Annotations
@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;
The annotations are self-explanatory. The order
attribute is mandatory and specifies the order in which the validations will be performed by the library.
Step 2 - Instantiate a new Validator
public void onCreate() {
super.onCreate();
// Code…
validator = new Validator(this);
validator.setValidationListener(this);
// More code…
}
You will need a Validator
for the current Activity
and also a ValidationListener
for callbacks on validation events.
Step 3 - Implement a ValidationListener
public class RegistrationActivity implements ValidationListener {
public void onSuccess() {
// Create a new account…
Toast.makeText(this, "Yay! we got it right!", Toast.LENGTH_SHORT).show();
}
public void onFailure(View failedView, Rule<?> failedRule) {
String message = failedRule.getFailureMessage();
if (failedView instanceof EditText) {
failedView.requestFocus();
failedView.setError(message);
} else {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}
}
public void preValidation() {
// Do nothing…
}
public void onValidationCancelled() {
// Do nothing
}
}
onSuccess()
- Called when all your views pass all validations.onFailure(View, Rule<?>)
- Called when aRule
fails, you receive theView
along with theRule
that failed.preValidation()
- Called before the validation starts, useful during asynchronous validations.onValidationCancelled()
- Called when an asynchronous validation is cancelled, never called during synchronous validations.
Step 4 - Perform validation
registerButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
validator.validate();
}
});
The Validator.validate()
call runs the validations and returns the result via appropriate callbacks on the ValidationListener
. You can run validations on a background AsyncTask
by calling the Validator.validateAsync()
method. You can call both the methods from any event listener such as the OnClickListener
, TextWatcher
, OnFocusChangedListener
, OnTouchListener
, etc.,
Please visit the wiki for a complete guide on Android Saripaar.