dialoguri Android alertdialog

Folosind fragmente la casetele de dialog din cauza arhitecturii sale este o opțiune convenabilă pentru aplicații care face față mai bine cu răsturnări de situație și se transformă dispozitivul apăsând pe butonul Back, mai scalabilă pentru diferite ecrane, etc.

Dacă va veni peste exemplele vechi, apoi se bucură de o modificare a acestora. Nu e greu. Mai ales pentru că mediul de dezvoltare este puternic jur prin utilizarea de clase și metode învechite.

În primul rând, o teorie pic. Pentru a crea un dialog ar trebui să fie moștenită de la clasa DialogFragment. Creați o nouă clasă MyDialogFragment:

Să presupunem că avem un buton de pe ecran de activitate. Pentru că vă poate arăta prin dialog metoda ().

dialoguri Android alertdialog

Cel mai probabil veți vedea un dreptunghi gol sau pătrat.

Din moment ce acest lucru este doar un fragment, avem nevoie pentru a apela fragmentele de manager și cere-i să arate un fragment.

Pentru a apela dialogul vom crea o instanță a MyDialogFragment și de apel arată metoda (clasa DialogFragment). Metoda are doi parametri: clasa de obiect FragmentManager. obținute prin metoda getFragmentManager (). și tag-ul - un dialog ID-ul sub forma unui șir de caractere constante prin care se poate identifica caseta de dialog, în cazul în care vor exista mai multe în proiectul nostru.

Există o fereastră alternativă de afișare prin tranzacție.

Avem un fragment inutil gol. Acesta este angajat în construcția sa. In clasa generata trebuie sa suprascrie onCreateDialog metoda (). Dacă utilizați marcajul, de asemenea, onCreateView este utilizat () metoda. ca fragmente normale. Cel mai probabil nu va reinventa roata, și va fi gata de a utiliza casetele de dialog cu opțiuni.

AlertDialog

Versiunea cea mai comună a casetei de dialog - l AlertDialog. De la ea și să înceapă.

caseta de dialog AlertDialog este o extensie a clasei Dialog. și este practica de dialog caseta de programator cel mai utilizat. Foarte des doriți să arate un dialog cu Da și Nu Următoarele elemente pot fi setate în casetele de dialog create:

  • antet
  • mesaj text
  • butoane: unul până la trei
  • listă
  • steaguri
  • întrerupătoare

Există două tipuri de clasă - și standardul bibliotecilor de compatibilitate. În acest moment cel mai bine este de a utiliza atunci când se lucrează cu android.support.v7.app.AlertDialog studio de proiect standard de.

Dialog cu un singur buton

Să începem cu un exemplu simplu - se va afișa pe ecran cu caseta de dialog-un singur buton.

dialoguri Android alertdialog

În primul rând, vom crea o clasă de obiecte AlertDialog.Builder. care trece ca parametru legătura cu activitatea. Apoi, folosind metoda Builder. Solicitarea de dialog creat de (metoda SetTitle ()) antet, un mesaj text în corpul (metoda setMessage ()) dialog, pictograma (setIcon () metoda), și faceți clic prin metoda sub numele ciudat setPositiveButton ().

Butonul de tratament în sine este apăsat în dialogul este definit în cadrul setPositiveButton metoda (). In cazul in care nashom, vom închide pur și simplu caseta de dialog prin metoda anulare ().

Notă modul destul de neobișnuit pentru a apela o serie de metode de lanț prin punctul .setMessage ( „feed pisica!“). SetIcon (R.drawable.ic_android_cat) etc. Această sintaxă este adesea văzut în jQuery. Cu această metodă nu este necesar să se utilizeze un punct și virgulă, la sfârșitul fiecărei metode, lipici pur și simplu toate apelurile. Dar puteți utiliza sintaxa obișnuită.

alegeri dificile - un exemplu cu două butoane

dialoguri Android alertdialog

Acum, ia în considerare exemplul de a crea o casetă de dialog cu două butoane pe bază de ilustrare.

dialoguri Android alertdialog

Partea generală a codului rămâne aceeași - clasa de obiect AlertDialog.Builder. Metode pentru reglarea butoanelor de ferestre și de dialog și de manipulare eveniment le. În AlertDialog puteți adăuga doar un singur buton pentru fiecare tip: pozitiv. Neutru și negativ. . Adică numărul maxim posibil de butoane în dialog -. Trei. Pe numele butoanelor nu acorde atenție, ei nu poartă un sens, ci determină doar ordinea de ieșire. Și în diferite versiuni de Android schimbat ordine. Prin urmare, pe dispozitive mai vechi butonul „Da“ poate fi primul, iar noul - acesta din urmă. Pentru fiecare buton, utilizând una dintre metodele stabilite de prefix. Button. care iau ca opțiunile inscripționarea butoane și interfață DialogInterface.OnClickListener. definește acțiunea atunci când este apăsat. Utilizatorul nu poate închide caseta de dialog făcând clic oriunde pe ecran, metoda se numește setCancelable (), cu o valoare de adevărat.

trei butoane

Să considerăm un exemplu cu trei butoane. Practic, nici o diferență. Repetați toți pașii anteriori, builder.create () metoda este numită pentru a afișa caseta de dialog. De exemplu, pentru a crea un dialog cu butoane Miau, bătătura, prost! Codul va arata ceva de genul:

dialoguri Android alertdialog

AlertDialog combo

Dacă aveți nevoie de o listă de elemente selectabile caseta de dialog în loc de butoane, utilizați setItems () metoda. în cazul în care trebuie să specificați o serie de date pentru a afișa în lista de dialog. Această metodă nu poate fi utilizată împreună cu metoda setMessage (). astfel încât acestea să ia conținutul de partea principală a ferestrei.

Elementul selectat apare în parametrul care. Când unul din meniu notificarea pop-up va apărea, arătând pisica selectată.

dialoguri Android alertdialog

AlertDialog cu comutatoare

Pentru a crea o casetă de dialog cu întrerupătoare setSingleChoiceitems utilizate () metoda în locul setItems metoda (). Dacă în interiorul onCreateDialog () creează o casetă de dialog. Sistemul Android controlează starea listei cu switch-uri. Până la operațiunea actuală este activă în apelurile ulterioare la caseta de dialog reține elementele selectate anterior.

Acordați atenție la următoarele detalii. Când selectați nu va închide comutatorul caseta de dialog. Prin urmare, este necesar să se prevadă mecanismul de închidere a ferestrei, de exemplu, pentru a adăuga un buton. Al doilea punct - setSingleChoiceitems în metoda utilizată pentru primele valori ale parametrilor pentru gama de comutatoare, iar al doilea parametru este utilizat pentru a comuta o valoare a indicelui întreg care urmează să fie incluse în caseta de dialog implicit apel. Dacă doriți ca toate switch-uri atunci când începe fost oprit, utilizați o valoare de -1.

dialoguri Android alertdialog

AlertDialog cu steaguri

Dacă doriți să utilizați în loc de cutii de comutare (casetă de selectare) pentru selecție multiplă, aveți nevoie de setMultiChoiceItems metoda (). Codul este aproape identic cu exemplul anterior:

Primul parametru din setMultiChoiceItems () metoda - o matrice de valori pentru o listă cu casete de selectare, al doilea parametru - o serie de steaguri boolean prevede lista implicită atunci când dialogul de apel. De exemplu, vrem să vedem al doilea element a fost verificat, iar celelalte elemente trebuie lăsate necontrolate. În acest caz, folosind o matrice de valori boolean;

Ca și în cazul precedent, cu switch-uri, pentru a dialog cu casete de selectare trebuie să utilizați butonul pentru a închide fereastra.

dialoguri Android alertdialog
dialoguri Android alertdialog

Transmiteți datele Activității

scrie codul, care specifică activitatea de bază pentru manipularea butoanelor de dialog clicuri.

În codul, orice dificultăți acolo - set din titlu, pictograma, butonul. În construcția casetei de dialog indică activitatea părinte și numele metodelor în ea, care va fi responsabil de manipulare clicuri butoane de dialog - în acest caz, metodele okClicked () și cancelClicked (). Apropo, numele metodelor sunt subliniate cu o linie roșie și IDE vă solicită să creați aceste metode într-o activitate de clasă (utilizați tastatură Alt + Enter comenzi rapide).

Du-te înapoi la codul principal de activitate și prescrie codul pentru apăsarea butoanelor din fereastra de dialog:

dialoguri Android alertdialog

Un exemplu a fost scris de principiul - „lucrări, bine“ De fapt, exemplul nu este foarte competent, chiar dacă el era încă în documentația găsite.

Opțiunea corectă este considerată în a doua parte a dialogului cutii DialogFragment.

AlertDialog cu propriul marcaj

Dacă formularul standard AlertDialog nu sunteți mulțumit, puteți veni cu aspectul și conectați-l prin setview () metoda

Veți obține să cunoască principiile de bază ale utilizării casetelor de dialog. Puteți vedea exemple de învechite AlertDialog și să încerce să le adapta la noi moduri de fragmente.

Odată cu apariția noului stil de design materialele din biblioteca de compatibilitate a apărut clasa android.support.v7.app.AlertDialog. care vă va permite să facă o caseta de dialog elegant și frumos.

Alte lecturi