Spread the love
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

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 :

 

 

 

 

 

 

Lalu di xml button juga perlu ditambahkan validation action

<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/

Related Posts
Gota : Library Request Permission di Android Dengan Mudah

Pada android untuk mengakses fitur yang bersifat privasi membutuhkan request permission pengguna, yang biasanya muncul alert yang memerlukan persetujuan pengguna. Read more

Flashbar : Membuat Notifikasi Alert di Android Berbeda

Kebanyakan notifikasi berupa alert hanya menampilkan dialog popup atau toast sederhana. Flashbar berupa library android mengimplementasikan notifikasi alert menjadi berbeda, Read more

Debug Database SQLite Android Melalui Browser

Melakukan debug sqlite ketika development android terkadang menyulitkan karena database yang dihasilkan android berada di internal system android. Memang ada Read more

Menampilkan Image/Gambar dari Url Pada Android Menggunakan Picasso

Menampilkan image pada android merupakan hal yang gampang-gampang susah apalagi jika image tersebut diambil dari url / remote server. Picasso Read more

Tagged : #

Leave a Reply

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