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.
setOnItemClickListener eror, mohon solusi
force close
onitemclicklistener nya error pak.
mohon solusi nya?
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
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
maaf bukan “tidak error” tp error
kok force close ya mas ? :(
KAK PUNYA TUTORIAL UNTUK MENYIMPAN DATA YANG INPUTANNYA BERUPA CHECKBOX ?
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 ?
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);
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
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
bsa mnta tutorial event clicknya yg lngsg ke 1 layout gk?
boleh minta source code program ny ga gan??
itu kodenya bukannya sudah saya sertakan :)