..
W poprzednim rozdziale nie było celowo oferuje czytelnikowi zoptymalizowana wersja słuchacza, bo wolał najpierw wyjaśnić podstawy działania w celu uniknięcia nieporozumień i iść liniową ścieżką narażenia. Z punktu widzenia realizacji, jednak kod opisane powyżej - jak powiedział - z pewnością nie jest preferowanym rozwiązaniem.
To, co widzimy teraz, jest więc optymalne realizacji naszych słuchaczy, tworząc obiekt powoływać się na oba przyciski OnClickListener pomocą setOnClickListener metody.
Posizioniamoci, a następnie dotknij HelloWorld.java pliku i wstawić następujący kod:
View.OnClickListener View.OnClickListener manager = new () {
public void onClick (view) {
switch (view.getId ()) {
R.id.bottone1 domów:
textView1.setText ("E" został kliknięty przycisk 1 !!!!!");
break;
R.id.bottone2 domów:
textView1.setText (przycisk "E" został kliknięty 2 !!!!!");
break;
}
}
};
bottone1.setOnClickListener (kierownik);
bottone2.setOnClickListener (kierownik);
Tak więc, najpierw utworzyć obiekt OnClickListener typu, a po nowej konstrukcji nazywany jest w klasie konstruktora następnie przechodząc do przedefiniowania metody OnClick, tak jak zrobiliśmy wcześniej.
Słuchacz, który stworzyliśmy jest rozróżnienie jest taki sam dla obu bottonni i dlatego, niż w poprzednich realizacji, mamy zapisane w pamięci na nowej instancji słuchacza. Zaletą jest jeszcze bardziej widoczna jako liczbę przycisków w oknie.
W istocie, słuchacz jest w stanie zgadnąć, który z dwóch przycisków został kliknięty działać zgodnie. Uznanie naciśnięciu przycisku za pomocą przełącznika na podstawie view.getId stan ().
Jak widać metoda OnClick ma jako argument Widok, a następnie, gdy przycisk zostanie kliknięty obiekt Zobacz inicjowany jest wciśnięty przycisk. Korzystanie z getId metoda () zwracają unikatowy identyfikator skojarzony do przycisku w pliku R.java widzieliśmy w poprzednich rozdziałach.
W tym momencie możliwe jest rozróżnienie wciśnięty przycisk na podstawie id przycisku, jak widać w przypadku budowy.
Gdy kod do metody OnClick jest wywoływane po obu przycisków setOnClickListener metody jako argument właśnie "OnClickListener utworzonego wcześniej.
Gdy zrozumiał, kod pokazano w tym rozdziale, jest łatwy w użyciu i łatwo zmienić. W rzeczywistości, wdrażania, a także umożliwia mniejsze zużycie pamięci (ale nie najmniej podczas programowania dla urządzeń o bardzo ograniczonej pamięci, takich jak telefon) ma wielką zaletę, że jest łatwy w utrzymaniu. To dlatego, że musimy zmienić zachowanie słuchacza będzie wiedział dokładnie, jaka część kodu go edytować. Samo nie można powiedzieć, jeśli będą korzystać z starej implementacji, ponieważ w takim przypadku, należy przejść przez wszystkie kodu dla każdego elementu, który jest używany dla detektora, a następnie andarne zmiany kodu wewnątrz.
Lepszego wdrożenia jest łatwo rozszerzalna tak jakby trzeba wstawić inny przycisk, który korzysta z tego samego słuchacza będzie musiał wykonać następujące kroki:
| |
ASP (Advanced)
Pełny kurs tworzenia dynamicznych stron internetowych. Od 39 €. |
| |
Flash MX i ActionScript (Kurs)
Zostań programistą stron internetowych od 29 €. |
| |
Javascript (Kurs)
Kompletny przewodnik po stronie klienta skryptów. Od 39 €. |