Menambahkan Event klik di Listview Android

Detail Negara Indonesia

Tutorial ini merupakan kelanjutan dari tutorial sebelumnya, jadi bagi yang belum baca silahkan klik Artikel listview ini. Tutorial ini akan menjelaskan secara ringkas bagaimana menambah event klik di listview. bahasa teknis dari event ini adalah onItemClickListener.

Buka kembali FilterListActivity.java dan tambahkan kode berikut ini

lv.setOnItemClickListener(new OnItemClickListener() {
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				 String nama_negara=lv.getItemAtPosition(position).toString();
				Intent intent= new Intent(getApplicationContext(),
						DetailNegaraActivity.class);
				intent.putExtra("nama_negara", nama_negara);
			
				startActivity(intent);
					
			}
		});

letakan kode diatas persis dibawah kode lv.setAdapter(adapter);.

Kode Detail Negara

fungsi dari activity ini adalah menampilkan nama negara dan ibukotanya berdasarkan item yang di klik user. Activity ini butuh file xml dengan nama activity_detail_negara.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"
    android:padding="15dp"
    tools:context=".DetailNegaraActivity" >

    <TextView
        android:id="@+id/nama_negara"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="nama negara"
        android:textSize="25sp" />

    <TextView
        android:id="@+id/info_negara"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/nama_negara"
        android:layout_below="@+id/nama_negara"
        android:layout_marginTop="19dp"
        android:text="info negara"
        android:textSize="15sp" />

</RelativeLayout>

DetailNegaraActivity

Lalu buatlah file java dengan nama DetailNegaraActivity.java. Untuk penjelasannya liat komentar di kodenya langsung

package com.listdemo;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class DetailNegaraActivity extends Activity {
	
	String nama_negara;
	TextView namaNegara,infoNegara;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// xml layoutnya activity_detail_negara 
		setContentView(R.layout.activity_detail_negara);

		// ambil textview nama_negara dan info_negara 
		namaNegara=(TextView) findViewById(R.id.nama_negara);
		infoNegara=(TextView) findViewById(R.id.info_negara);

		// ambil parameter nama_negara dari intent 
		Intent intent = getIntent();
		nama_negara = intent.getStringExtra("nama_negara");

		// tampilkan nama negara di TextView nama negara 
		namaNegara.setText(nama_negara);

		// panggil setInfo(String negara) dan tampilkan ibukotanya 
		setInfo(nama_negara);
		
	}
	/*
	 * fungsi setInfo dipakai untuk menambahkan
	 * keterangan ibukota propinsi sesuai dengan nama negara
	 * yang di klik, silahkan tambah if..else lagi jika ingin 
	 * info lengkap 
	 */
	public void setInfo(String negara){
		if(negara.equalsIgnoreCase("indonesia")){
			infoNegara.setText("Ibukota jakarta");
		}else if(negara.equalsIgnoreCase("malaysia")){
			infoNegara.setText("ibukota Kuala lumpur");
		}else{
			infoNegara.setText("ibukota tidak diketahui");
		}
	}
}

Hasil

Ini adalah tampilan saat user mengklik item indonesia.

Detail Negara Indonesia
Detail Negara Indonesia

Author: Candra Adi Putra

Candra Adi Putra adalah Alumni STMIK AKAKOM Yogyakarta. Like Candralab Studio Di Facebook.

12 thoughts on “Menambahkan Event klik di Listview Android”

  1. pak saya buat listview engunakan data adapter trus saya ingin saat listvie di tekan itu muncul dialog contoh list menu makanan saat di tekan saya ingin masukan jumlah mknan yg di pesan itu gimana yah bisa di bantu

  2. pak candra, punya saya pada class FilterListActivity.java pada bagian
    “lv.setOnItemClickListener(new OnItemClickListener()” kok tidak error ya, disaranin sma android studionya untuk diganti
    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    mohon bantuannya, karena ketika saya klik pada salah satu listnya tiba-tiba force close

  3. mas misalnya search jakarta terus di klik langsung masuk ke dalam menu lain itu nambah codingan buat nyambungin class ke menu lain nya dimana ya ?

  4. mas, contoh diatas hanya memberikan 1 layout berupa text untuk di panggil (jakarta) ??
    apabila ada 100 data dalam listview,bagaimana pengkodeannya ??
    Script code berikut ini masih tidak saya pahami mengambil string nama_negara dari file XML yang mana ??
    karena dicontoh sebelumnya tida dijelaskan :

    String nama_negara=lv.getItemAtPosition(position).toString();
    Intent intent= new Intent(getApplicationContext(),
    DetailNegaraActivity.class);
    intent.putExtra(“nama_negara”, nama_negara);

    startActivity(intent);

  5. yah.. disuruh ngoment pake tanda seru -_-.. ya udah aku ngoment… aku baru belajar programming android mas… jadi ga tau yang mau di comment :D

    ini lagi buat Tugas Akhir tentang aplikasi chat.. lagi bingung cara nampilin foto, status onlline dan offlinenya :D

  6. mas kalau event kliknya kyk code d bawah ini, mau tambah di fitur pencarian gi mana yh?

    public class Obat extends ListActivity{
    public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    // Create an array of Strings, that will be put to our ListActivity
    String[] menu = new String[] {“Alang-alang”,”Avokad”,”Pepaya”};
    // Menset nilai array ke dalam list adapater sehingga data pada array
    // akan dimunculkan dalam list

    this.setListAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, menu));
    getListView().setBackgroundResource(R.drawable.backgroundberikut);

    }

    @Override
    /**method ini akan mengoveride method onListItemClick yang ada pada class List Activity
    * method ini akan dipanggil apabilai ada salah satu item dari list menu yang dipilih
    */
    protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    // Get the item that was clicked
    // Menangkap nilai text yang dklik
    Object o = this.getListAdapter().getItem(position);
    String pilihan = o.toString();
    // Menampilkan hasil pilihan menu dalam bentuk Toast
    tampilkanPilihan(pilihan);

    }

    /**
    * Tampilkan Activity sesuai dengan menu yang dipilih
    *
    */
    protected void tampilkanPilihan(String pilihan) {
    try {
    // Intent digunakan untuk sebagai pengenal suatu activity
    Intent i = null;
    if (pilihan.equals(“Alang-alang”)) {
    i = new Intent(this, Obtalang.class);
    } else if (pilihan.equals(“Avokad”)) {
    i = new Intent(this, Obtavokad.class);
    }else
    {i = new Intent(this, Obtpepaya.class);
    }
    startActivity(i);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }

    mohon bantuannya

Tinggalin komentar dong!