Memberi validasi pada suatu field terkadang menjadi hal yang “malas”, bukan karena tidak mudah tapi butuh ekstra coding tambahan jadi sifatnya easy but takes time hehe. Apalagi di android, setiap field di inisiasi, varibel lalu dicek. Convalida merupakan salah satu library yang memudahkan kita memasang validasi field. Convalida is a simple, lightweight and powerful field validation library for Android.

Beberapa kelebihan convalida :

Instalasi

Tambahkan jitpack di root build.gradle :

allprojects {
  repositories {
    maven { url 'https://jitpack.io' }
  }
}

tambahkan juga pada dependencies :

dependencies {
  implementation 'com.github.WellingtonCosta.convalida:convalida:2.0.1'
  annotationProcessor 'com.github.WellingtonCosta.convalida:convalida-compiler:2.0.1'
}

Berikut validasi yang bisa dilakukan convalida :

  • Required Fields
  • E-mail Fields
  • Confirm E-mail Fields
  • Min/Max Fields
  • Only Number Fields
  • Regex Fields
  • Password Fields
  • Confirm Password Fields

Validasi pada convalida bisa menggunakan anotasi dan data-binding. Berikut implementasinya.

Validasi menggunakan anotasi

@RequiredValidation(errorMessage = R.string.field_required)
EditText nameField;

@LengthValidation(errorMessage = R.string.min_3_characters, min = 3)
EditText nickNameField;

@OnlyNumberValidation(errorMessage = R.string.only_numbers)
EditText ageField;

@EmailValidation(errorMessage = R.string.invalid_email)
EditText emailField;

@ConfirmEmailValidation(errorMessage = R.string.emails_not_match)
EditText confirmEmailField;

@PatternValidation(errorMessage = R.string.invalid_phone, pattern = PHONE_PATTERN)
EditText phoneField;

@PasswordValidation(min = 3, errorMessage = R.string.invalid_password)
EditText passwordField;

@ConfirmPasswordValidation(errorMessage = R.string.passwords_not_match)
EditText confirmPasswordField;

Lalu tambahkan juga anotasi pada button yang digunakan

@ValidateOnClick
Button validateButton;

Tambahkan juga fungsi yang meng-handle hasil dari validasi

@OnValidationSuccess
public void onValidationSuccess() {
    Toast.makeText("Yay!", Toast.LENGTH_LONG).show();
}

@OnValidationError
public void onValidationError() {
    Toast.makeText("Something is wrong :(", Toast.LENGTH_LONG).show();
}

Lalu inisialiasi class yang digunakan

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sample);
    ActivityFieldsValidation.init(this);
}

Menggunakan Data Binding

Untuk menggunakan validasi data binding, kita perlu menambahkan pada project gradle

dataBinding {
  enabled true
}

Lalu di xml yang digunakan ditambahkan validasi dan string berupa data binding :

1
2
3
4
5
6
7
8
9
10
11
 

 

 

 

 

 

Lalu di xml button juga perlu ditambahkan validation action

Tulisan Lain   Android Device Manager : Mengunci Android Anda Secara Remote (Jarak jauh)
1
2
3
<button></button>

<button>

sisanya sama seperti pada bagian anotasi, yaitu handle result dari validasi dan inisialisasi class yang digunakan.

Kalau dilihat caranya lebih sederhana dan lebih rapih dibandingkan jika melakukan validasi secara manual. Untuk lebih jelas bisa ke https://github.com/WellingtonCosta/convalida/

By alfach

Leave a Reply

Your email address will not be published. Required fields are marked *