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

[code lang=”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>
[/code]

Java Source

[code lang=”java”]
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 disini
// bisa dengan menambahkan function, misalkan menggunakan 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);
}
}

}

}
[/code]

Published by

Riza

Web Developer & Designer

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.