Butonul Android (buton)

informații generale

Button - una dintre cele mai comune de control în programare. Mosteneste de la TextView și este clasa de baza pentru clasa SompoundButton. Din clasa CompoundButton, la rândul său, a moștenit elemente, cum ar fi CheckBox. ToggleButton și RadioButon. Pe Android, un buton folosit clasa android.widget.Button. Textul pe butonul situat pe butoanele potrivite pentru a apăsa pentru a obține rezultatul. O alternativă poate servi ImageButton componenta (android.widget.ImageButton), care este utilizat în locul unei imagini de text.







Studioul este reprezentat de un buton în secțiunea Widgets componenta buton. Controla dimensiunea fontului, culoarea textului și alte proprietăți este posibil prin atributul textAppearance. care utilizează stiluri de sistem. Lista verticală a proprietăților conține o listă foarte mare de opțiuni. De asemenea, puteți seta manual setările individuale specifice prin proprietățile individuale.

Dacă întinde butonul pe lățimea ecranului (Android: layout_width = „match_parent“), este recomandat să utilizați Android atributul: layout_margin (sau layout_marginRight și layout_marginLeft aferente) la liniuța din marginile ecranului (webmasterii sunt familiarizați cu acești termeni).

Pe măsură ce butonul este moștenitorul TextView. se folosește mai multe atribute familiare: textcolor. textSize și colab.

Metoda Trei eveniment de manipulare pentru apăsarea unui buton

Dacă ați pus pe butonul de ecran și va faceți clic pe ea, nu se întâmplă nimic. Trebuie să scrie cod care va rula atunci când apăsați. Există mai multe modalități de manipulare la apăsarea butoanelor.

Primul mod - atributul onClick

O metodă relativ nouă, special dezvoltat pentru Android - pentru a utiliza atributul onClick (afișat ca prin clic pe panoul Proprietăți):

Numele evenimentului poate fi ales în mod arbitrar, dar este mai bine să nu arate off. În continuare, trebuie să vă înregistrați în activitatea la clasă pe care a inventat numele metodei care se va ocupa de presa. Metoda trebuie să fie deschisă (publică) și un parametru, folosind View obiect. Trebuie să înveți cinci cuvinte pentru a crea o metodă, iar metoda este pus într-o clasă (dacă sunteți încă confuz în structura Java-cod, introduceți metoda înainte de ultima gulerului):

Atunci când utilizatorul face clic pe butonul, apoi numit metoda onMyButtonClick (). care, la rândul său, generează un mesaj pop-up.

Vă rugăm să rețineți că o astfel de abordare nu va avea chiar să declare un buton prin design (buton) findViewById (R.id.button1). astfel încât Android se va înțelege ce e ceea ce. Această metodă se aplică nu numai la buton, dar, de asemenea, la alte elemente și reduce numărul de linii de cod.

Această metodă nu va funcționa în fragmente. Butonul ar trebui să facă parte din fragmentul de activitate și nu.

A doua cale - setOnClickListener () metoda

O metodă mai tradițională în Java - prin metoda setOnClickListener (). care ascultă apăsarea butonului. Deoarece codul poate parea dificil pentru un programator novice, este recomandat să utilizați sfaturi de studio. Iată cum va arăta. Să presupunem că aveți deja pe ecran buton buton. În codul, îl declare în mod obișnuit:

Acum aveți piesa de lucru, și o dată în interiorul acolade ale metodei onClick (), puteți scrie codul. Vă recomandăm să practice și de a lua parte la crearea piesei de prelucrat. Nu este la fel de greu și practica o abilitate să fie fixat în mod automat.

Alternativ, puteți face un cod pentru OnClickListener într-o locație separată, este convenabil atunci când câteva butoane de pe ecran și această abordare va simplifica codul. Scoateți exemplul anterior, și începe să scrie codul de la zero. Principiul este același ordin, ușor diferit. În exemplul anterior, imediat am înregistrat în metoda ascultătorului setOnClickListener nou OnClickListener. metoda onClick (). Puteți declara mai întâi o variabilă separată separat myButtonClickListener:







Avem o variabilă gata făcute, iar acum că va câștiga cod button.setOnClickListener. în loc să introduceți noua variabilă gata OnClickListener.

Pentru o descriere începător poate părea haotică și nu este clar, dar este mai bine să facă acești pași pe cont propriu, și pentru a înțelege mecanismul.

A treia cale - interfața OnClickListener

A treia metodă este legată de cea de a doua metodă, și, de asemenea, un Java tradițional. Butonul însușește handler folosind metoda setOnClickListener (View.OnClickListener l). și anume orice obiect cu interfață View.OnClickListener. Putem specifica faptul că clasa noastră de activitate se va folosi interfata View.OnClickListener.

șterge din nou codul din exemplul anterior. În continuare, după cuvintele extinde activitatea cuvintele implementează adaugă OnClickListener. Când vi se solicită, nu fac nici o greșeală. De obicei, există o primă interfață pentru dialog, iar al doilea ne dorim View.OnClickListener.

Numele clasei dvs. să fie subliniat linia roșie ondulată, faceți clic pe cuvântul publice și așteptați pentru lumina roșie, pentru a alege Implementarea metodelor. O casetă de dialog apare cu metoda selectată onClick. Selectați-l și piesa de prelucrat pentru a apăsa butonul va apărea în codul.

Metoda nu este implementată într-un handler obiect separat, și activitate. care va acționa în calitate de tratare. În onCreate () Butonul metoda de tratare a Alocați. Acest lucru va fi obiectul prezentului. și anume obiectul actual al activitatii noastre.

La început, această metodă, de asemenea, pare complicat si confuz pentru tine. Cu timpul și experiența vine înțelegerea necesară.

Personal, am recomandăm să utilizați prima metodă este cea mai ușoară și mai intuitiv. Utilizarea a doua și a treia metodă vă va da o idee despre cum să scrie pentru stivuitoare alte evenimente precum și un buton poate avea și alte evenimente. De exemplu, în afară de obicei de presare există o apăsare lungă pe butonul (clic lung). Un astfel de exemplu este metoda de atingere am dat la sfârșitul acestui articol.

Pentru a afla cum să se ocupe de un clic pe un buton am scris un buton separat articol clic / Contor ciori. Butonul este, de asemenea, de multe ori se găsesc în multe exemple pe site-ul. Despre manipulare o apăsare lungă poate fi găsit într-un articol pe ImageButton.

Creșteți și înmulțiți - este vorba despre pisici, dar nu și despre butoanele

Când aveți un buton într-o fereastră, atunci va avea o singură metodă, două butoane - două metode și așa mai departe. Dacă aveți mai multe butoane, nu este necesar ca fiecare să prescrie o metodă, puteți face una, și în metoda de separare a codului ID al unui buton. Dacă te uiți la codul din exemplele anterioare, puteți vedea că parametrul metodă este prezentă View. care permite să se determine, pentru un buton este o bucată de cod:

Să presupunem că aveți trei butoane:

După cum puteți vedea, am redus cantitatea de cod. Acum avem un handler onClick (). care definește acțiunea a trei butoane.

Asigurați-buton indisponibil

Uneori ai nevoie pentru a face butonul disponibile, și activați-l în anumite condiții. XML se poate face prin intermediul butonului nu este disponibilă (nu există nici un atribut adecvat). Acest lucru poate fi realizat prin metoda programatică setEnabled ():

Ca o alternativă, puteți lua în considerare Android atribut: accesabile. care va activa butonul nu răspunde la atingere, dar rămâne normală în acest tip de buton.

Asigurați butonul plat

Butonul standard de pe ecran arată convex. Dar, în unele cazuri, este de dorit să se utilizeze o interfață de plată. Anterior, în acest scop pot fi utilizate TextView cu manipulare clicuri. Dar acum recomanda utilizarea unui borderlessButtonStyle stil aparte:

Butonul va păstra comportamentul său obișnuit, se va schimba culoarea atunci când este apăsat, etc.

Adăugați un alt stil cu apariția de design material, de exemplu, stilul = „@ stil / Widget.AppCompat.Button.Borderless“. care este varianta preferată. Încercați, de asemenea, stilul = „@ stil / Widget.AppCompat.Button.Borderless.Colored“

Atinge-mă cu blândețe

Dacă observați cu atenție comportamentul butonului, veți vedea că codul este declanșat în momentul când eliberați laba, îmi pare rău, degetul de pe buton. Pentru aplicații normale este destul de normal, iar această abordare ar putea fi prea lent pentru jocurile de viteză. În astfel de cazuri, este mai bine să se ocupe de situația cu nici o atingere a unui buton, și cu atingerea lui. În Android, există o OnTouchListener corespunzătoare () ascultător:

In onTouch () metoda are un MotionEvent parametru. permițând defini mai fin ecranul tactil. În cazul în care un eveniment are loc atunci când utilizatorul atinge ecranul, atunci se va potrivi constantă ACTION_DOWN. Prin urmare, în cazul în care utilizatorul va elimina degetul, ar trebui să utilizați o ACTION_UP constantă. Prin urmare, poate fi privit ca o apasare a unui buton combinație de două evenimente - atingere și eliberare.

Din păcate, nu există nici o metodă în Android Pat astăzi. Pisicile sunt nemulțumiți.

Ia textul de la butonul

Inspirat de întrebare de pe forum. Sarcina - pentru a obține textul butonului în metoda onClick (). Metoda are un parametru de tip View. care nu are Gettext metoda (). Pentru a face acest lucru, tip conduc la tipul de buton.

Dacă ați mai multe butoane legate de metoda onClick (). apoi faceți clic pe butonul apăsat va afișa textul.

Alte lecturi