..
U prethodnom poglavlju nije namjerno ponuditi čitatelju optimiziran verziju slušatelja, kao što je prednost da prvi objasniti osnove rada kako bi se izbjegla konfuzija i slijediti linearni put izloženosti. S gledišta provodi, međutim, kod prikazan iznad - kao što je spomenuto - svakako nije poželjna rješenje.
Ono što vidimo sada, dakle, je optimiziran provedbi naših slušatelja stvaranjem objekt se primijeniti i na OnClickListener gumbe metodom setOnClickListener.
Posizioniamoci, pa opet u HelloWorld.java datoteku i umetnite sljedeći kôd:
View.OnClickListener View.OnClickListener Manager = new () {
public void onclick (View view) {
prekidač (view.getId ()) {
R.id.bottone1 kuće:
textView1.setText ('E' je kliknuo gumb 1 !!!!!");
odmor;
R.id.bottone2 kuće:
textView1.setText ('E' gumb je kliknuo 2 !!!!!");
odmor;
}
}
};
bottone1.setOnClickListener (voditelj);
bottone2.setOnClickListener (voditelj);
Dakle, prvo stvorite objekt tipa OnClickListener i, nakon što je novi konstrukt, pozivajući se na konstruktor za klasu, a zatim će se redefinirati onclick način kao što smo učinili prije.
Slušatelj koji smo stvorili je razlika da isti za oba pa bottonni u odnosu na prethodnu primjenu, imamo memoriju spremljene na novu instancu slušatelja. Prednost je još očitije kako se broj gumbiće u prozoru.
U biti, slušatelj je u stanju razumjeti što od dva gumba je kliknuo djeluje u skladu s tim. Priznanje se pritisne tipka pomoću prekidača na temelju uvjeta view.getId ().
Kao što možemo vidjeti onclick metoda je kao argument Pogled, a zatim, kad se klikne gumb, prikaz objekt inicijalizira uz tipku. Koristeći metodu getId () vraća jedinstveni ID povezan na gumb u datoteci R.java smo vidjeli u prethodnim poglavljima.
U ovom trenutku je moguće razlikovati tipku na temelju ID gumb, kao što možemo vidjeti u slučaju izgradnje.
Nakon što je kod za onclick metoda se zove metoda setOnClickListener na obje desne tipke kao argument "OnClickListener stvorili ranije.
Nakon razumio, kod prikazan u ovom poglavlju, to je lako za korištenje i lako promijeniti. U stvari ovo provedbi, kao i omogućujući manji memorije (ali ne i najmanje važno kada je programiranje za uređaje s ograničenom memorije poput telefon) ima veliku prednost od bitak lako održivi. To je zato što ako je potrebno promijeniti ponašanje slušatelj će znati točno što se dio koda ide na uređivanje. Ista stvar se ne može reći, ako ćemo koristiti stari provedbe, jer u tom slučaju, trebali bismo proći kroz sve kod za svaki element koji se koristi za slušatelja, a zatim andarne za izmjenu koda unutra.
Poboljšana provedba je lako proširiv kao da mi je potrebno za umetanje drugog gumb koji koristi isti slušatelj će jednostavno slijediti sljedeće korake:
| |
MySQL (tečaj)
Upravljanje open-source baza podataka. Počevši od 39 €. |
| |
SQL i baze podataka (tečaj)
Stvaranje i upravljanje relacijskim bazama podataka. Počevši od 39 €. |
| |
XML (tečaj)
Stvaranje objekata XML, XSL i proširiva jezika. Počevši od 29 €. |