Menggunakan ListView Android dengan ArrayAdapter

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);
        }
    }
}

}

Published by

Riza

Contemplative Learner

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.