Mobile - joc de dezvoltare dialogfragment utilizare

Acest post este un ghid de traducere din Blogul dezvoltatorilor Android

Începând cu Android Honeycomb în fragmente au apărut (fragmente), care a permis să re-utilizare în partea anexă a interfeței de utilizator și logica. Metode showDialog și Clasa de activitate dismissDialog au fost declarate caduce. Acestea au fost înlocuite DialogFragments.

În acest post am folosi compatibilitatea DialogFragments prodemostriruyu cu v4 bibliotecă (pentru compatibilitate cu dispozitivele care rulează versiunile anterioare de Android), pe exemplul unui dialog simplu care vă permite să introduceți text și să se întoarcă rezultatul cauzat de activitate prin intermediul interfeței. Aici puteți vedea ghida proiectarea de dialoguri.

Layout (Aspect)

Mai jos este dialogul aspect care este fișierul fragment_edit_name.xml.

Android: layout_width = "wrap_content" Android: layout_height = "wrap_content"

android: layout_gravity = "center" android: orientare = "verticală">

Android: id = "@ + id / lbl_your_name" Android: text = "Numele tau"

android: layout_width = "wrap_content" android: layout_height = "wrap_content" >

Toast. makeText (acest lucru. "Bună," + inputText, pâine prăjită. LENGTH_SHORT). spectacol ();


Ar trebui să acorde o atenție la câteva lucruri. În primul rând, activitatea noastră se extinde FragmentActivity. din moment ce folosim biblioteca suport pentru compatibilitate cu API-ul Fragment. Din acest motiv, noi numim getSupportFragmentManager () în loc de metoda getFragmentManager ().

După tipul de încărcare activitate arată imediat EditNameDialog cauzând ei arată metoda (). Acest lucru permite DialogFragment negocieze statutul cu fragmentul de asteptare al acestuia. Apăsând „spate“ se va închide dialogul fără nici un cod suplimentar.

Utilizarea dialogului

Următorul pas, să îmbunătățească EditNameDialog. adăugând capacitatea de a trece datele introduse de utilizator la linia noastră de activitate.

public class EditNameDialog se extinde DialogFragment implementează OnEditorActionListener


Pentru comoditatea utilizatorului, noi numim accentul pe programul EditText folosind mEditText.requestFocus (). Alternativ, am putea folosi tag-ul în XML aspect -e. Cu toate acestea, în unele cazuri, să solicite programul de focalizare este de preferat. De exemplu, OnFocusChangeListener am adăugat în onCreateView () metoda nu va fi numit, dacă vă întreb truc aspect XML -e.

Tastatura software este afișată automat după ce un utilizator face un accent pe EditText. Pentru a declanșa acest eveniment este software-ul îl numim getDialog (). GetWindow (.) SetSoftInputMode (). Rețineți că multe dintre operațiunile clasei de fereastră pe care s-ar fi făcut în clasa de dialog poate fi folosit pentru a DialogFragment. dar acum trebuie să evoce getDialog (). getWindow () în loc getWindow (). Se va arata ca tableta de dialog smatrfone rezultat și puteți vedea mai jos:

Mobile - joc de dezvoltare dialogfragment utilizare

onEditorAction () metoda este declanșată atunci când utilizatorul apasă butonul „Done“. Aceasta este cauzată pentru că ne-am specificat pentru OnEditorActionListener EditText. El, la rândul său, determină metoda noastră de activitate pentru a trimite textul introdus de utilizator. Pentru acest EditNameDialog anunță interfață EditNameDialogListener. care, la rândul său, pune în aplicare activitatea noastră. Acest lucru permite utilizarea dialogului în multe activități. Putem obține de activitate. care a cauzat dialogul cu metoda getActivity (). Acum putem numi onFinishEditDialog metoda (). Activitatea de pre zakastiv la interfața EditNameDialogListener. Arhitectura MVC este un model comun pentru interacțiunea cu tipul de controler.

Putem închide dialogul într-unul din cele două moduri. În acest exemplu, vom apela metoda respingerea () în caseta de dialog. Acesta poate fi, de asemenea, numit de activitatea precum arată metoda ().

Sper ca acest post a vărsat lumină pe piesele în care acestea sunt asociate cu dialogul. Puteți găsi codul sursă al acestui post pe codul Google.