[Android] Membuat Custom Cursor Adapter

screenshot

Pernah bingung gimana caranya bikin Cursor Adapter yang bisa nampilin gambar ? Button ? atau mungkin substring karakter di TextView ? sampe seharian ngubek2 google ? hahaha kami pernah πŸ˜€

Jadi ceritanya kemaren2 di kerjaan disuruh bikin aplikasi yang di dalemnya ada modul untuk nampilin list yang terdiri dari teks sama gambar. Asalnya yang pertama kali kepikiran adalah bikin custom Array Adapter, tapi berhubung data yang mau ditampilin itu dari database, jadi pasti repot kalo pake Array Adapter, so harus pake Cursor Adapter. Nah setelah cari2 info, ternyata ada juga cara buat bikin custom Cursor Adapter hehehe.. So here’s the story !

Download Source Code

Java adalah bahasa berorientasi objek (OOP), artinya pemrogramannya berfokus sama objek. Nah setiap objek mempunyai method dan attribute dari class’nya masing-masing. Disini kita akan coba men’override salah satu method dari class Cursor Adapter supaya bisa digunakan sesuai dengan kebutuhan. Method yang akan kita override adalah method “bindView” dan “newView”. Disini kita akan nampilin ImageView, TextView, dan Button di setiap row ListView. Dan ngga lupa juga OnClickListener untuk button dan ListView.

Pertama supaya ceritanya lengkap, disini dibuat database sederhana dimana data-data di setiap baris tabelnya akan ditampilkan di ListView dengan CursorAdapter. So, buat New Project di IDE kesayangan anda, disini gw pake Eclipse Luna dengan min SDK API 15, nama main activity’nya : GunActivity.java, dan nama layoutnya : gun_activity.xml. Untuk databasenya kita akan buat class database helper dengan nama : DBAdapter.java. Kebetulan gw pernah posting tentang pengenalan SQLiteDatabase di Android.

New Project

1. Class DBAdapter.java

Class ini bertugas sebagai handler database

dbadapter1
dbadapter2
dbadapter3

2. Class GunActivity.java

Class ini adalah class utama, disini kita akan menampilkan ListView dengan ImageView, TextView dan Button pada setiap row’nya.

gunactivity1 gunactivity2 gunactivity3 gunactivity4

Di class ini kita membuat tag HashMap untuk Button di dalam method bindView, sehingga data-data yang sebelumnya dimasukkan ke dalam HashMap akan bisa dimanipulasi ketika button diclick. Sedangkan untuk OnClickListener milik ListView, pada saat terjadi event click, maka akan muncul alert dialog yang berisi data dari row yang diclick.

Lho kok bisa ? kan harusnya rebutan focus ? antara listener click Button n ListView ? hehehe, rahasianya ada di file layoutnya. Untuk ListView, digunakan parameter android:focusable=”true”, sedangkan untuk Button, digunakan parameter android:focusable=”false”. Jadinya ngga akan rebutan focus πŸ˜€

3. Layout gun_activity.xml

gun_activity

4. Layout row_list_gun.xml

row_list1 row_list2

5. Strings.xml

strings

6. Color.xml

color

Nah kira-kira kaya gitu cara untuk membuat Custom Cursor Adapter, mungkin siapa tau ada saran atau cara yang lebih baik, bisa langsung dishare di kolom komentar hehe.

Thx πŸ™‚

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google

You are commenting using your Google account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s