Kustomisasi ListView

ListView adalah view yang serba guna sehingga kita bisa me-kustomisasi-nya. Berikut adalah contoh latihan untuk membuat ListView yang bisa memilih “multiple items” dan bisa menerapkan filtering.

1. Kita masih gunakan project dalam contoh latihan sebelumnya dan memodifikasi file “MainActivity.java” seperti berikut:
package id.co.blogspot.diansano.viewdasar5;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends ListActivity {

String[] pahlawan = {"Diponegoro", "Soekarno", "Cut Nyak Dien",
"Cut Meutia", "Sultan HB IX", "Boedi Oetomo", "R.A. Kartini", "Patimura",
"Sultan Hasanudin", "I Gusti Ngurah Rai", "Jendral Ahmad Yani", "Yos Sudarso",
"Juanda", "Adi Sutjipto", "Moh. Hatta", "Pangeran Antasari"};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/* tidak perlu memanggil ini
setContentView(R.layout.activity_main); */

ListView listView = getListView();
//listView.setChoiceMode(ListView.CHOICE_MODE_NONE);
//listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
listView.setTextFilterEnabled(true);

setListAdapter(new ArrayAdapter(this,
android.R.layout.simple_list_item_checked, pahlawan));
}

public void onListItemClick(ListView parent, View view, int position, long id) {
Toast.makeText(this, "Anda klik " + pahlawan[position],
Toast.LENGTH_SHORT).show();
}
}
2. Kemudian jalankan di emulator Android Studio seperti gambar di bawah ini:



Penjelasan

Kita menggunakan method ‘getListView()’ untuk mendapatkan acuan ke object ListView yang mengambil list view dari class ‘ListActivity’. Kita harus melakukan ini sehingga kita bisa memodifikasi ListView melalui kode program. Dalam hal ini, kita menggunakan method ‘setChoiceMode()’ untuk menentukan bagaimana ‘ListView’ akan menangani klik dari user. Untuk contoh ini, kita men-set ke ‘ListView.CHOICE_MODE_MULTIPLE’, yang berarti user diperbolehkan untuk bisa memilih multiple items:
ListView listView = getListView();
//listView.setChoiceMode(ListView.CHOICE_MODE_NONE);
//listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
Fitur yang asyik dari ListView adalah kemampuannya untuk filtering. Ketika kita menerapkan filtering melalui method ‘setTextFilterEnabled()’, kita bisa mengetik pada keypad dan ‘ListView’ akan secara otomatis menangani item-item sesuai yang diketikkan:
listView.setTextFilterEnabled(true);

No comments: