Advantages of using Saripaar:
- Simple to Use.
- Easily Customizable
- Supports all annotation services in Android like Butter Knife, Android Annotations, Robo Guice, etc.,
Project Setup:
dependencies {
classpath 'com.android.tools.build:gradle:2.3.3'
classpath 'com.jakewharton:butterknife-gradle-plugin:8.8.1'
}
apply plugin: 'com.jakewharton.butterknife'
...
dependencies {
...
compile 'com.mobsandgeeks:android-saripaar:2.0.2'
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
}
Examples:
@BindView(R.id.email)
@NotEmpty
@Email
EditText emailEditText;
@Email is used to validate Email input.
@BindView used for Butter Knife
@BindView(R.id.password)
@Password(min = 6, scheme = Password.Scheme.ALPHA_NUMERIC_MIXED_CASE_SYMBOLS)
EditText passwordEditText;
@BindView(R.id.conf_password)
@ConfirmPassword
EditText confirmPasswordEditText;
@ConfirmPassword used to match @Password input with Confirm Password input.
@BindView(R.id.phone)
@Pattern(regex = "^[7-9][0-9]{9}$", message = "Invalid Mobile Number")
EditText phoneEditText;
regex is used to set custom pattern.
message used to set custom message.
Validation Process:
public class MainActivity extends AppCompatActivity
implements Validator.ValidationListener {
...
@Override
public void onValidationSucceeded() {
Toast.makeText(this, "Validation Success", Toast.LENGTH_SHORT).show();
}
@Override
public void onValidationFailed(List errors) {
for (ValidationError error : errors) {
View view = error.getView();
String message = error.getCollatedErrorMessage(this);
// Display error messages ;)
if (view instanceof EditText) {
((EditText) view).setError(message);
} else {
Toast.makeText(this, message, Toast.LENGTH_LONG).show();
}
}
}
}
validator = new Validator(this); validator.setValidationListener(this); ... @OnClick(R.id.submit) public void onButtonClick(View view) { validator.validate(); }
