CandraLab

IT Pro & Developer Resource

Menu Close

Menambahkan Event klik di Listview Android

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.

&lt;RelativeLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
 <span id="more-3356"></span>   xmlns:tools=&quot;http://schemas.android.com/tools&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    android:padding=&quot;15dp&quot;
    tools:context=&quot;.DetailNegaraActivity&quot; &gt;

    &lt;TextView
        android:id=&quot;@+id/nama_negara&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:text=&quot;nama negara&quot;
        android:textSize=&quot;25sp&quot; /&gt;

    &lt;TextView
        android:id=&quot;@+id/info_negara&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_alignLeft=&quot;@+id/nama_negara&quot;
        android:layout_below=&quot;@+id/nama_negara&quot;
        android:layout_marginTop=&quot;19dp&quot;
        android:text=&quot;info negara&quot;
        android:textSize=&quot;15sp&quot; /&gt;

&lt;/RelativeLayout&gt;

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