Cara Menghandel Event ListView Ketika Diklik

Catatan ini khusus membahas mengenai cara menghandel event ListView ketika diklik (click triggered). Event yang akan digunakan untuk menghadel klik tersebut adalah

OnItemClickListener()

. Event Handler tersebut khusus menangani event ketika user melakukan klik pada item-item yang tersedia di dalam ListView.

Catatan ini dibuat untuk melanjutkan catatan sebelumnya mengenai Cara Menggunakan ListView di Android Studio.  Asumsi umum dalam menulis catatan ini adalah pembaca diasumsikan telah bisa membuat ListView dengan adapter sederhana seperti yang dijelaskan pada catatan sebelumnya.

Cara Menghandel Event ListView Ketika Diklik

Cara yang digunakan untuk menghadel event ListView ada beberapa macam.

  1. Menghandel event ListView secara langsung di dalam method onCreate
  2. menghandel event ListView dengan cara membuat sebuah fungsi khusus (di dalam activity tetapi diletakkan di luar method onCreate) kemudian fungsi tersebut dipanggil dari method onCreate()
  3. Mengahdel event ListView dengan cara mengimplementasikan
    OnItemClickListener()

Menghandel Event ListView di dalam Method onCreate()

Kode untuk menghandel event ListView langsung di method onCreate adalah sebagai berikut:

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                //event ketika diklik ditulis di sini
            }
        });

Contoh kode lengkapnya adalah sebagai berikut:

package com.nusagates.listview;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    ListView listView;
    ArrayList<String> list = new ArrayList<String>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView=(ListView)findViewById(R.id.listView);
        ArrayAdapter arrayAdapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1, list);
        listView.setAdapter(arrayAdapter);
        list.add("List Satu");
        list.add("List Dua");
        list.add("List Tiga");
        list.add("List Empat");
        list.add("List Lima");
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(MainActivity.this, "Anda memilih item "+list.get(position).toString(), Toast.LENGTH_SHORT).show();
            }
        });
    }
}

Menghandel event ListView Menggunakan Sebuah Fungsi

Cara ini adalah dengan cara membuat sebuah fungsi kemudian fungsi tersebut di dalam method onCreate(). Cara ini sering aku gunakan ketika event yang harus dilakukan ketika item diklik cukup banyak sehingga tidak memenuhi bagian onCreate(). Contoh pembuatan fungsinya adalah sebagai berikut:

public void user_klik_item(){
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(MainActivity.this, "Anda memilih item "+list.get(position).toString(), Toast.LENGTH_SHORT).show();
            }
        });
    }

Setelah fungsi tersebut dibuat selanjutnya dipanggil di dalam method onCreate() dengan mengetikkan kode

user_klik_item();

Kode Lengkapnya sebagai berikut:

package com.nusagates.listview;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    ListView listView;
    ArrayList<String> list = new ArrayList<String>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView=(ListView)findViewById(R.id.listView);
        ArrayAdapter arrayAdapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1, list);
        listView.setAdapter(arrayAdapter);
        list.add("List Satu");
        list.add("List Dua");
        list.add("List Tiga");
        list.add("List Empat");
        list.add("List Lima");
        user_klik_item();
    }
    public void user_klik_item(){
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(MainActivity.this, "Anda memilih item "+list.get(position).toString(), Toast.LENGTH_SHORT).show();
            }
        });
    }
}

Menghandel event ListView Mengimplementasikan ListView.OnItemClickListener

Cara ini cukup simpel dan membuat struktur Activity kita lebih bagus karena dikelompokkan sesuai tempatnya. Cara menggunakan ini cukup mudah.

Pertama tambahkan

implements ListView.OnItemClickListener

pada deklarasi pembuatan class. Jika sudah ada implement tidak perlu ditambahkan implement lagi cukup pisahkan method-method tersebut dengan koma (,). Contoh:

implements View.OnClickListener, ListView.OnItemClickListener

Setelah itu tambahkan methode onItemClick di dalam class. Kode yang ditambahkan adalah sebagai berikut:

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

    }

Kode Lengkap cara handel event ListView menggunakan method ini adalah sebagai berikut:

package com.nusagates.listview;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity implements ListView.OnItemClickListener{
    ListView listView;
    ArrayList<String> list = new ArrayList<String>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView=(ListView)findViewById(R.id.listView);
        ArrayAdapter arrayAdapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1, list);
        listView.setAdapter(arrayAdapter);
        list.add("List Satu");
        list.add("List Dua");
        list.add("List Tiga");
        list.add("List Empat");
        list.add("List Lima");
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Toast.makeText(MainActivity.this, "Anda memilih item "+list.get(position).toString(), Toast.LENGTH_SHORT).show();
    }
}

Hasil eksekusi project bisa dilihat pada gambar di bawah:

Cara Menghandel Event ListView Ketika Diklik
Cara Menghandel Event ListView Ketika Diklik

Demikian catatan singkat mengenai Cara Menghandel Event ListView Ketika Diklik.

Sampaikan pendapatmu di sini.
Ahmad Budairi
Ahmad Budairihttps://bloggersejoli.com/
Seorang Web developer yang suka menulis artikel di blog. Kader Penggerak Nahdlatul Ulama (NU)

Bacaan Menarik Lainnya

Tanggapan Kamu?

Baru Terbit