In acest episod voi introduce un nou concept: Intent. Intent este o metoda de a lega mai multe ferestre intre ele. ferestrele nu trebuie sa apartina in mod necesar aceleasi aplicatii, de exemplu pot apela in aplicatia mea fereastra de dialer a telefonului la fel cum pot apela orice fereastra a aplicatiei mele!
Un Intent se foloseste, de obicei, ca parametru al metodei startActivity() a clasei Activity. In momentul in care o noua fereastra apare, fereastra care a deschis-o, cea unde am executat startActivity, nu este distrusa, ci plasata intr-o stiva si se poate reveni la ea prin apasarea butonului back.
In acest episod nu voi adauga nici un cod corespunzator proiectului android discutat in film deoarece el nu contine decat cateva linii de cod care pot fi extrase (scrise) rapid in timpul vizionarii filmului.
Vreau sa amintesc ca este important sa adaugam in filiserul manifest (AndroidManifest.xml) orice fereastra noua adaugata aplicatiei noastre. Pentru fiecare fereastra (Activity) vom adauga un nou nod in nodul application, un nod activity care ar trebui sa aiba o structura de tipul:
<activity android:name=".F2" android:label="F2" > <intent-filter> <action android:name="eu.zeltera.demoFerestre.F2" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
unde in nodul activity, atributul android:name reprezinta numele clasei Java care reprezinta fereastra iar android:label este titlul ferestrei, asa cum apare el in bara de titlu a ferestrei. Nodul intent-filter are la randul sau 2 noduri: action si category, fiecare dintre acestea avand un atrinut android:name. In cazul action trebuie precizat un nume unic (recomandat, in caz contrar cand cineva incearca sa apeleze aceasta dupa nume va aparea o fereastra de dialog care sa intrebe utilizatorul cu care dintre Activities-urile cu acelasi nume sa execute comanda (intent). Pentur al doilea nod, android:name trebuie sa fie android.intent.category.DEFAULT pentru ferestrele secundare ale apicatiei si android.intent.category.LAUNCER pentru fereastra ce va fi afisata la pornirea aplicatiei.
Vlad says:
Salut, vreau sa iti spun ca sunt foarte interesante tutorilare tale. Singura mea nelamurire este ca atunci cand vreau sa scriu ceva, nu-mi apar scurtaturile din eclipse, doar atunci cand de exemplu scriu “super.” doar atunci cand pun “.” imi apare in rest nu. Stii cum se poate rezolva?
Iti multumesc
zeltera says:
Daca apesi Ctrl+Space o sa iti apare fereastra de intelisense. Daca nu apare trebuie sa te uiti in optiuni si sa vezi ce shortcut key este atriibuit acestei comenzi (cred ca “display intelisense” este numele comenzii).
Vlad says:
Iti multumesc, acum functioneaza.