Penggunaan ListView pada Android

Komponen ListView digunakan untuk menampilkan daftar opsi atau piliahan pada android. list yang ditampilkan dapat di-scroll.
Berikut contoh aplikasi sederhana yang saya buat untuk penggunaan ListView pada Android.

Script XML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ListView
        android:id="@+id/ls_menu"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true" >
    </ListView>

</RelativeLayout>
Untuk script java-nya
 package com.thegunk.listview;

import android.os.Bundle;
import android.app.Activity;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class ListViewActivity extends Activity{
    private ListView ls_menu;
    private String[] menu = {"Menu 1", "Menu 2", "Menu 3", "Menu 4", "Menu 5"};
  
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view);
      
        ls_menu = (ListView) findViewById(R.id.ls_menu);
        ArrayAdapter adapter = new ArrayAdapter(this,
                android.R.layout.simple_list_item_1, menu);
        ls_menu.setAdapter(adapter);
    }
}
Jalankan!!!

Pada ListView dapat ditambahkan action, jika kita mengklik atau memilih salah satu item dari ListView dapat menggunakan setOnItemClickListener

Ubah script sebelumnya dengan script berikut
package com.thegunk.listview;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.AdapterView;

import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;


public class ListViewActivity extends Activity implements OnItemClickListener{
    private ListView ls_menu;
    private String[] menu = {"Menu 1", "Menu 2", "Menu 3", "Menu 4", "Menu 5"};
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view);
       
        ls_menu = (ListView) findViewById(R.id.ls_menu);
        ArrayAdapter adapter = new ArrayAdapter(this,
                android.R.layout.simple_list_item_1, menu);
        ls_menu.setAdapter(adapter);
        ls_menu.setOnItemClickListener(this);
    }

    public void onItemClick(AdapterView arg0, View arg1, int posisi, long arg3) {
        Toast.makeText(ListViewActivity.this, "Anda memilih "+menu[posisi], Toast.LENGTH_SHORT).show();
    }

}
jika kita mengklik atau memilih salah satu dari menu yang ada, maka teks menu akan ditampilkan dalam bentuk toast seperti pada gambar dibawah ini.

7 komentar

kk, mau tanya donk...
kalo saat menu diklik, terus masuk ke activity lain misal menampilkan list view lagi, itu gmn kk??

mohon bantuannya. Thanks

IF'09 ITN Malang

Maaf baru balas...
terima kasih sudah berkunjung...

Untuk pindah activity lain, pakai 'Explicit Intent'...
misal saya buat 2. ActivityPertama & ActivityKedua:

Intent i = new Intent(ActivityPertama.this, ActivityKedua.class);
startActivity(i);

script itu diletakkan di dalam action list view-nya.

salam...
:)

kaka mau tanya dong
ko aku eror di setContentView(R.layout.activity_list_view);
knp ya kaka?
terima kasih atas jawabanny...

Apakah bisa disertakan atau tampilkan pesan erorr-nya secara detail?
Bisa dicek pada Log/monitor console.
Karena ada beberapa kemungkinan penyebabnya.

Terima kasih telah berkunjung :)

pak kalo saya ingin pada saat listview di klik akan merubah posisi
misal saya klik no 5 terus nomer 5 itu pidah posisi jadi di nomer satu

mau tanya
gimana caranya kalo item listview yang sudah diklik pindah jadi paling atas sendiri?

Pada tutorial di atas, saya cantumkan hanya array 1 data saja yang menampilkan nama list.

Untuk merubah posisi, harus ditambahkan juga 1 parameter baru sebagai no urutnya.
Kemudian ketika ada event clicklistener, update data no urutnya yg diklik menjadi 1, dan no urut lainnya diupdate ditambah 1.
Kemudian render ulang list.

Masih ada cara lain, tergantung dari pemikiran masing-masing.

Terima kasih.


EmoticonEmoticon