Un eveniment onclick pentru mai multe butoane - sifonare în rusă

Răspunsul a fost deja dat, dar cred că merită explicat viitorilor utilizatori.

Orice widget (control) pe Android este moștenit din clasa View. La rândul său, fiecare vizualizare poate fi pusă în conformitate cu un anumit identificator (cod suplimentar).







ID-urile sunt, de obicei, alocate xml și folosite pentru a găsi controlul în arborele curent al tuturor vizualizărilor.

Detectarea clicurilor pe orice vizualizare (nu neapărat un buton) apare prin implementarea interfeței View.OnClickListener. Acest lucru se poate face în două moduri: prin implementarea acestei interfețe de activitate sau prin crearea unei instanțe a unei clase anonime (noul View.OnClickListener ()). Dar principalul lucru de făcut este să înlocuiți metoda OnClick () a interfeței View.OnClickListener. Da, și nu uitați că trebuie să alocați controlul necesar ascultătorului său (view.setOnClickListener (onClickListener)). În plus, un singur ascultător poate fi atribuit pentru orice număr de controale.







Cum se face distincția între vizualizarea pe care a fost făcută clicul? Uitați-vă la semnătura metodei onClick a interfeței View.OnClickListener:

În cadrul acestei metode, dezvoltatorii ne permit să folosim o referință la Vizualizare. la care a fost făcut clic (în acest caz este afișat v). Rămâne pur și simplu să distingem diferitele puncte de vedere în funcție de caracteristicile lor individuale. Apoi ID-ul vine în ajutorul nostru. Metoda view.getId () returnează valoarea identificatorului pentru comanda specificată. Rămâne doar să o comparați.

ps. Merită menționat faptul că pentru sistemul ID este o valoare int.

pps. Există încă o modalitate de a detecta un clic, prin apelarea directă a metodei:

În acest caz, metoda specificată este pur și simplu numită. Citiți mai multe despre această opțiune aici

@KoVadim, este mai bine să măriți binarele doar pentru a fi tăcut, deoarece este un mit) dacă o persoană are nevoie de principii de bază, aceasta este de ajutor code.google.com/p/iosched. aici caută un răspuns rapid și precis la o anumită problemă. Nu sunt o exagerare, cred ca dupa ce am invatat sa conectez adnotari si sa-i folosesc pe oameni in viata mai mult sau mai putin, nu se va intoarce la modalitatile standard de a se dezvolta sub Android. Voi spune doar un singur lucru - în pro-codul de 200 de linii, este mai ușor să găsești o eroare decât în ​​codul fără adnotări de 600 de linii. pentru a folosi sau nu, acesta este cazul fiecărui __personal)) - SATALIN 21 Aug '13 la 14:10







Articole similare

Trimiteți-le prietenilor: