Tworząc nowy przycisk, zapewne chcemy, żeby po jego kliknięciu wykonała się jakaś akcja.Zatem taki przycisk musi obsługiwać zdarzenie, którym w tym przypadku jest kliknięcie na niego. Może to być wyświetlenie komunikatu, otworzenie nowego activity, zapis danych itd. Jednak domyślnie przycisk jest nieczuły na kliknięcia i trzeba jasno mu sprecyzować dwie rzeczy. Po pierwsze - ma "nasłuchiwać" czy wystąpiło określone zdarzenie. Po drugie ma wiedzieć co zrobić gdy takie zdarzenie wystąpi. Do realizacji tych zadań używany jest OnClickListener:
//mamy już przycisk zdefiniowany wcześniej
// Java
button.setOnClickListener( new OnClickListener() { // 1
@Override
public void onClick(View arg0) {
Toast.makeText(getApplicationContext(), "przycisk został kliknięty", Toast.LENGTH_SHORT).show(); // 2
}
})
// Kotlin
button.setOnClickListener { // 1
Toast.makeText(this, "przycisk został kliknięty", Toast.LENGTH_SHORT).show() // 2
}
1. Ustawiamy zdarzenie na które przycisk ma reagować.
2. Dodajemy akcję jaka ma się wykonać.
Istnieje wiele typów zdarzeń, które mogą być definiowane na dowolnym typie komponentu. Na przykład OnClickListener możemy równie dobrze ustawić na TextView. Możemy definiować co stanie się gdy użytkownik dłużej przytrzyma palec na komponencie (OnLongClickListener ), spróbuje go przeciągnąć (OnDragListener ), czy nawet wykonanie akcji może być spowodowane przez samo wprowadzanie tekstu - w przypadku EditText (TextChanged).