Widoki list i adaptery
261
jesteś tutaj
Zapewnianie reakcji ListView na kliknięcia
za pomocą obiektu nasłuchującego
Elementy widoku listy mogą reagować na kliknięcia poprzez
zaimplementowanie
obiektu nasłuchującego
(ang. event listener).
Obiekt nasłuchujący pozwala nam oczekiwać na zdarzenia zachodzące
w aplikacji, takie jak kliknięcie widoku, utrata lub uzyskanie miejsca
wprowadzania, a nawet naciśnięcie przycisku sprzętowego na
urządzeniu. Jeśli zaimplementujemy taki obiekt nasłuchujący, możemy
określić, kiedy użytkownik wykonał określoną czynność — taką jak
kliknięcie widoku — i zareagować na nią.
Komponent ListView musi wiedzieć,
że aktywność obchodzi to, co się
z nim dzieje.
Komponent ListView informuje aktywność
o tym, że jeden z jego elementów został
kliknięty, aby ta mogła na to zdarzenie
zareagować.
ListView
Aktywność
OnItemClickListener jest klasą
zagnieżdżoną, która jest umieszczona
wewnątrz klasy AdapterView.
ListView jest klasą pochodną klasy
AdapterView.
To widok, który został kliknięty
(w naszym przypadku jest to widok listy).
Te parametry przekazują nam informacje o tym,
który element listy został kliknięty i jakie jest
jego położenie na liście.
AdapterView.OnItemClickListener itemClickListener =
new AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView<?> listView,
View itemView,
int position,
long id) {
if (position == 0) {
Intent intent = new Intent(TopLevelActivity.this, DrinkCategoryActivity.class);
startActivity(intent);
}
}
};
Napoje to pierwszy element wyświetlony
w widoku listy, co oznacza, że znajduje
się on w miejscu o indeksie 0.
Intencja pochodzi z aktywności
TopLevelActivity.
Ma ona spowodować
uruchomienie aktywności
DrinkCategoryActivity.
Po utworzeniu obiektu nasłuchującego musimy go dodać do komponentu
ListView
.
OnItemClickListener oczekuje na kliknięcia
Jeśli chcemy, aby elementy listy reagowały na kliknięcia, musimy
zaimplementować obiekt typu
OnItemClickListener
i jego metodę
onItemClick()
. Obiekt nasłuchujący typu
OnItemClickListener
oczekuje na
zdarzenia związane z kliknięciem, a jego metoda
onItemClick()
pozwala nam
określić, jak należy na te kliknięcia zareagować. Metoda ta ma kilka parametrów,
których możemy użyć do określenia, który element został kliknięty, na przykład
pobrać referencję do klikniętego widoku, jego położenie na liście (liczone od 0)
czy też identyfikator prezentowanych na nim danych.
W przypadku naszej aplikacji chcemy, by po kliknięciu pierwszego elementu
listy, elementu w położeniu o indeksie 0, została uruchomiona aktywność
DrinkCategoryActivity
. Jeśli zostanie kliknięty ten element, musimy
utworzyć intencję odwołującą się do aktywności
DrinkCategoryActivity
.
Poniżej przedstawiliśmy kod obiektu nasłuchującego; na następnej stronie
dodamy go do pliku
TopLevelActivity:
Get Android Programowanie aplikacji. Rusz głową! Wydanie II now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.