Belajar Android (Part 3)
Pada artikel sebelumnya kita sudah membahas teknik dasar dalam mengembangkan aplikasi Android, khususnya pada sisi user interface dengan bantuan activity dan fragment. Nah pada tulisan kali ini, Saya akan coba membahas lebih lanjut lagi mengenai komponen pendukung yang cukup penting dalam menampilkan list terhadap populasi data yang kita dapatkan, baik itu dari REST API ataupun dari local database kita.
Adapter
Adapter merupakan salah satu komponen yang cukup bermanfaat ketika kita ingin menampilkan list terhadap populasi data yang kita dapatkan dari sisi backend atau REST API. Saat ini, di android ada banyak sekali contoh adapter yang bisa digunakan. Namun, pada tulisan kali ini Saya akan coba membahas spesifik untuk membuat RecyclerViewAdapter
Seperti biasa, Saya coba memisahkan metode pembelajaran kali ini tetap dengan menggunakan git-flow. Langkah pertama yang akan kita lakukan adalah membuat layout untuk menampilkan row dari adapter tersebut. Layout ini kita namakan dengan item_home
Layout yang kita buat ini akan digunakan sebagai holder terhadap view group yang akan kita tampilkan dalam sebuah activity atau fragment. Karena kita akan membuat adapter menggunakan RecyclerView, maka kita wajib menambahkan view group tersebut ke dalam parent layout nya. Pada contoh kali ini, Saya akan menambahkan nya pada fragment_home
Ok, untuk layout nya sudah selesai. Sekarang kita akan implementasikan tampilan tersebut. Pertama-tama, Saya akan buatkan class adapter terlebih dahulu untuk menghubungkan tampilan holder nya
Setelah class holder tersebut jadi, kita akan panggil adapter nya dalam class fragment yang telah kita buat pada artikel sebelumnya, yaitu dalam class HomeFragment
Agar kita bisa melakukan UI Testing. Umumnya membutuhkan data yang bisa didapat dari local database maupun dari REST API. Pada contoh kali ini, Saya akan coba membuat mock object dengan tujuan agar implementasi UI yang kita buat dapat berjalan sebagaimana mestinya :)
// Prepare mock object into list of items
final List<String> items = new ArrayList<>();
items.add("Opsi Satu");
items.add("Opsi Dua");
items.add("Opsi Tiga");
items.add("Opsi Empat");
items.add("Opsi Lima");
items.add("Opsi Enam");
items.add("Opsi Tujuh");
items.add("Opsi Delapan");
items.add("Opsi Sembilan");
items.add("Opsi Sepuluh");
Mock Object tersebut dapat kita implementasikan di fungsi yang sama dalam class HomeFragment, yaitu pada fungsi onActivityCreated, sehingga hasilnya akan menjadi seperti ini…
So, gimana guys ? cukup mudah bukan ? dan jika kita ingin menambahkan EventListener pada tiap row dalam adapter tersebut kita cukup menambahkan beberapa property saja pada layout holder kita, contohnya seperti ini:
Pada code di atas, sebenarnya Saya hanya menambahkan 2 property saja di dalam ViewGroup RelativeLayout, yaitu background untuk selection item background dan fungsi clickable
Selanjutnya kita cukup menambahkan implementasi dari EventListener tersebut pada class holder yang sudah kita buat sebelumnya…
class HomeHolder extends RecyclerView.ViewHolder {
private final TextView mTextView;
public HomeHolder(final View itemView) {
super(itemView);
mTextView = (TextView) itemView.findViewById(R.id.tv_home);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View view) {
final int position = getAdapterPosition();
final String message = String.format(Locale.getDefault(), "Item click at position %d", position);
Toast.makeText(getContext(), message, Toast.LENGTH_SHORT).show();
}
});
}
public TextView getTextView() {
return mTextView;
}
}
Anyway, cukup mudah bukan coding di Android ? Inilah teknik dasar dalam membuat aplikasi Android (activity, fragment dan adapter) dan hampir setiap kita membuat aplikasi di Android, khususnya pada bagian user interface pasti tidak akan terlepas dari komponen tersebut…
Seperti biasa, source selengkapnya dapat dilihat pada: