Penggunaan List View sangat direkomendasikan daripada menggunakan extends ListActivity, karena pada Android API terbaru saat ini diharuskan include Android Support Library (Jika menggunakan Eclipse IDE, setiap membuat project baru akan muncul folder appcompat_v7) sehingga class melakukan extends terhadap ActionBarActivity.
Tujuan disediakannya Android Support Library untuk memberikan dukungan terhadap versi Android terdahulu, dimulai dari API Level 8 (Android 2.2 Froyo).
Berikut ini merupakan contoh sederhana penggunaan ListView dengan menggunakan ArrayAdapter:
Layout XML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView> </RelativeLayout>
Java Source
package id.web.digid.examplelistview; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import android.os.Bundle; import android.content.Context; import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarActivity; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; public class ListViewActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listviewactivity); final ListView listview = (ListView) findViewById(R.id.listview); String[] values = new String[] { "Menu Pertama", "Menu Kedua", "Menu Ketiga", "Tentang", "Keluar" }; final ArrayList<String> list = new ArrayList<String>(); for (int i = 0; i < values.length; ++i) { list.add(values[i]); } final StableArrayAdapter adapter = new StableArrayAdapter(this, android.R.layout.simple_list_item_1, list); listview.setAdapter(adapter); // event listener ketika salah satu list item terpilih listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, final View view, int position, long id) { final String item = (String) parent.getItemAtPosition(position); // lakukan sesuatu dengan nilai item terpilih // bisa menambahkan function, misalkan Intent // untuk berpindah ke activity berikutnya } }); } private class StableArrayAdapter extends ArrayAdapter<String> { HashMap<String, Integer> mIdMap = new HashMap<String, Integer>(); public StableArrayAdapter(Context context, int textViewResourceId, List<String> objects) { super(context, textViewResourceId, objects); for (int i = 0; i < objects.size(); ++i) { mIdMap.put(objects.get(i), i); } } } }