Event Handler dan event Listener
| Event Handler | Event Listener & Descripsi | 
|---|---|
| onCreateContextMenu() | onCreateContextMenuItemListener() Ini dipanggil ketika konteks menu sedang di buat, sebagai hasil dari klik panjang yang berkelanjutan | 
| onClick() | OnClickListener() Ini dipanggil ketika pengguna mengklik atau menyentuh pada widget seperti tombol, teks, gambar, dll. Anda akan menggunakan event handler onClick() untuk menangani event tersebut. | 
| onLongClick() | OnLongClickListener() Ini dipanggil ketika pengguna mengklik atau menyentuh lama pada widget seperti tombol, teks, gambar, dll. selama satu detik atau lebih. Anda akan menggunakan event handler onLongClick() untuk menangani event tersebut. | 
| onFocusChange() | OnFocusChangeListener() Ini dipanggil ketika keadaan fokus suatu view telah berubah. Parameter. Anda akan menggunakan event handler onFocusChange() untuk menangani event tersebut. | 
| onKey() | OnFocusChangeListener() Ini dipanggil saat kunci perangkat keras dikirim ke view. Anda akan menggunakan event handler onKey() untuk menangani event tersebut. | 
| onMenuItemClick() | OnMenuItemClickListener() Ini dipanggil ketika pengguna memilih item menu. Anda akan menggunakan event handler onMenuItemClick() untuk menangani event tersebut. | 
| onTouch() | OnTouchListener() Ini dipanggil ketika pengguna menekan tombol, melepaskan tombol, atau gerakan gerakan apa pun di layar. Anda akan menggunakan event handler onTouch() untuk menangani event tersebut. | 
Berikut ini ada tiga konsep yang terkait dengan Event Manajemen pada Android:
* Event Handlers: Ketika suatu peristiwa terjadi dan kita telah mendaftarkan event listener untuk event tersebut, event listener memanggil Event Handlers, yang merupakan metode yang akan menangani event tersebut.* Event Listener Registrasi: Pendaftaran Acara adalah proses di mana Penangan Acara didaftarkan ke Event Listener sehingga penangan dipanggil ketika Pendengar Acara menjalankan acara.
* Event Listener: Event listener adalah antarmuka di kelas View yang berisi satu metode callback. Metode ini akan dipanggil oleh kerangka kerja Android ketika View pada listener telah terdaftar dipicu oleh interaksi pengguna dengan item di UI.
Ada banyak pendengar acara yang tersedia sebagai bagian dari kelas View seperti OnHoverListener, OnDragListener dll yang mungkin diperlukan untuk aplikasi Anda. Jadi saya sarankan untuk merujuk dokumentasi resmi untuk pengembangan aplikasi Android jika Anda akan mengembangkan aplikasi yang unik dan sesuai.
Contoh Event Handler
Pendaftaran event listener dengan Menggunakan Kelas Dalam AnonimDi sini Anda akan membuat implementasi anonim dari listener dan akan berguna jika setiap kelas diterapkan ke satu kontrol saja dan Anda memiliki keuntungan untuk meneruskan argumen ke event handler. Dalam pendekatan ini metode event handler dapat mengakses data pribadi Activity. Tidak diperlukan referensi untuk memanggil ke Aktivitas.
Tetapi jika Anda menerapkan handler ke lebih dari satu kontrol, Anda harus memotong dan menempelkan kode untuk handler dan jika kode untuk handler panjang, itu membuat kode lebih sulit untuk dipertahankan.
Berikut adalah langkah-langkah sederhana untuk menunjukkan bagaimana kita akan menggunakan kelas Listener terpisah untuk mendaftar dan menangkap klik event. Dengan cara serupa Anda dapat menerapkan listener Anda untuk jenis acara lain yang diperlukan.
1. Tambahkan klik event handler dan listener untuk tombol yang ditentukan pada file MainActivity.java.2. Tambahkan sebuah TextView pada file res/layout/activity_main.xml untuk menyertakan kontrol UI Android, Tidak perlu mendeklarasikan konstanta string default. Android studio menangani konstanta default.
3. Jalankan aplikasi untuk meluncurkan emulator Android dan verifikasi hasil perubahan yang dilakukan dalam aplikasi.
Berikut ini akan menjadi konten file res/layout/activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="match_parent"
	android:layout_height="match_parent"
	android:gravity="center"
	android:orientation="vertical">
<TextView
	android:layout_height="wrap_content"
	android:layout_width="wrap_content"
	android:text="Hello world!"
	android:layout_marginBottom="10dp"
	android:gravity="center"
	android:textSize="25sp"
	android:textColor="#FF000000"
	android:textStyle="bold"
	android:id="@+id/activitymainTextView1"/>
<Button
	android:layout_height="wrap_content"
	android:layout_width="wrap_content"
	android:text="KLIK"
	android:layout_marginTop="35dp"
	android:textSize="18sp"
	android:textStyle="bold"
	android:textColor="#FFFFFF"
	android:id="@+id/activitymainButton1"
	android:padding="6dp"/>
</LinearLayout>
Berikut ini adalah konten file aktivitas utama yang dimodifikasi MainActivity.java, File ini dapat mencakup masing-masing metode siklus hidup dasar.
package com.happycodx.app;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
import android.view.View;
public class MainActivity extends Activity { 
     Button button;
	 TextView textview;
	 int count = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
		button = (Button) findViewById(R.id.activitymainButton1);
		textview = (TextView) findViewById(R.id.activitymainTextView1);
		
		button.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				count = count + 1;
				setText();
			}
		});
	}
	
	public void setText() {
		switch (count) {
			case (0):
				textview.setText("Hallo world!..");
				break;
			case (1):
				textview.setText("Happy Hacking..");
				break;
			case (2):
				textview.setText("-- Happycodx --");
				break;
				default:
				break;
		}
	}
} 
Hasilnya:
Event Listener Registrasi
Pendaftaran Acara adalah proses di mana Event Handler terdaftar di Event Listener sehingga handler dipanggil ketika Event Listener menjalankan event. Meskipun ada beberapa cara rumit untuk mendaftarkan pendengar acara Anda untuk acara apa pun, tetapi saya hanya akan mencantumkan 3 cara teratas, di mana Anda dapat menggunakan salah satunya berdasarkan situasinya.- Menggunakan Kelas Dalam Anonim
- Kelas aktivitas mengimplementasikan antarmuka Listener.
- Menggunakan file Layout activity_main.xml untuk menentukan event handler secara langsung.
Bagian di bawah ini akan memberi Anda contoh terperinci tentang ketiga skenario:
Focus
View atau widget biasanya disorot atau menampilkan kursor yang berkedip saat berada dalam fokus. Ini menunjukkan bahwa ia siap menerima masukan dari pengguna.- isFocusable() mengembalikan true atau false
- isFocusableInTouchMode() memeriksa untuk melihat apakah tampilan dapat difokuskan dalam mode sentuh. Tampilan mungkin dapat difokuskan saat menggunakan tombol perangkat keras tetapi tidak saat perangkat dalam mode sentuh.
android:foucsUp="@=id/button_l"
onTouchEvent()
public boolean onTouchEvent(motionEvent event){
   switch(event.getAction()){
      case TOUCH_DOWN:
      Toast.makeText(this,"you have clicked up Touch button",Toast.LENTH_LONG).show();
      break();
   
      case TOUCH_UP:
      Toast.makeText(this,"you have clicked down touch button",Toast.LENTH_LONG).show();
      break;
   
      case TOUCH_MOVE:
      Toast.makeText(this,"you have clicked move touch button"Toast.LENTH_LONG).show();
      break;
   }
   return super.onTouchEvent(event) ;
}
