Obsługiwać zdarzenie kliknięcia komponentu można na kilka sposobów. Przedstawię trzy najpopularniejsze. Do wszystkich trzech sposobów będzie nam potrzebny jakiś komponent na którego kliknięcie będziemy reagować. Z tego powodu przyklejam na ekranie jeden przycisk.
Pierwszy najprostszy w przygotowaniu i chyba najbardziej przejrzysty, ale też najmniej czytelny i wymagający dużo kodu. Tworzymy osobno listener kliknięcia (czyli słuchacza zdarzenia kliknięcia – czeka aż klikniesz i reaguje) i podpinamy go do guzika:
To co się ma wydarzyć w wyniku kliknięcia jest opisane w metodzie onClickk listenera. W tym przypadku jest to wyświetlenie komunikatu Toast z tekstem „om nom nom” (linia 23). Samo podpięcie stworzonego listenera odbywa się w linii 27.
Alternatywnie choć na podobnej zasadzie możemy utworzyć obiekt listenera w momencie jego tworzenia – linia 19. Mniej kodu, ale czytelność na tym traci. Efekt działania identyczny jak poprzednio.
Trzecia alternatywna metoda jest chyba najmniej intuicyjna, ale jak się zrozumie zasadę działania to kod przy większej ilości guzików do obsługi będzie najbardziej przejrzysty i bardzo wygodny w rozwijaniu. Tym razem nie definiuję żadnego listenera! Wszystko co ma się zdarzyć po kliknięciu przycisku jest opisane w metodzie obslugaKlikniecia. Wazne by metoda ta przyjmowala jako parametr obiekt klasy View (po tej klasie dziedziczą wszystkie komponenty takie jak guzik i to właśnie pod postacią tego parametru jest przekazywany obiekt komponentu do metody) i nic nie zwracała. Pozornie metoda jako taka nie jest w żaden sposób związana z obsługą kliknięcia na przycisk:
Magia zaczyna dziać się dopiero w pliku layoutu związanym z tą aktywnością:
Pamiętajmy że obsługa kliknięcia nie dotyczy tylko przycisków, ale każdego komponentu dziedziczącego po View – w tym napisy i pola edycyjne.
XML:
OdpowiedzUsuńandroid:onClick="klikniento"
Java:
public void klikniento( View v){
//polecenia do wykonania
}
Idealne podsumowanie :)
OdpowiedzUsuń49 year old Budget/Accounting Analyst I Winonah Croote, hailing from Cold Lake enjoys watching movies like Not Another Happy Ending and Water sports. Took a trip to Greater Accra and drives a Crossfire Roadster. przeczytaj ten artykul
OdpowiedzUsuńBardzo fajny tekst. Super to czytać
OdpowiedzUsuńCiesze się że na tym blogu zawsze znajduje ciekawe informacje.
OdpowiedzUsuńWpis zawiera bardzo ciekawe informacje
OdpowiedzUsuńCiekawe informacje
OdpowiedzUsuńSuper artykuł! Czekam na kolejne! https://aexol.com/pl/
OdpowiedzUsuńCiekawy wpis
OdpowiedzUsuńW tym wpisie znajdują się wszystkie najważniejsze informacje.
OdpowiedzUsuń