Professional Documents
Culture Documents
fragmenti i namere
Doc. Dr Vladimir Milievi
UVOD
Aktivnost je odreena prozorom koji obuhvata korisniki interfejs mobilne aplikacije. Aplikacija moe da ima jednu ili vie aktivnosti
iji je osnovni zadatak obezbeivanje komunikacije izmeu korisnika i aplikacije.
Fragmenti predstavljaju male aktivnosti koje su grupisane na nain da formiraju jednu veu, sloenu, aktivnost. Poseban akcenat e
biti stavljen na mogunost istovremene upotrebe fragmenata i aktivnosti.
Konano, u daljem izlaganju bie govora o veoma vanom mobilnom konceptu namerama. Namere predstavljaju mehanizam
pomou kojeg aktivnosti iz razliitih aplikacija funkcioniu zajedno sa ciljem izvravanja zadataka neke konkretne aplikacije.
Razumevanje i savladavanje ovog koncepta je jako bitno budui da e biti primenjivan prilikom izvravanja brojnih ugraenih
aplikacija, poput: Google Chrome, Telefon, Google Maps, Kontakti itd.
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 2
UPOZNAVANJE KONCEPTA AKTIVNOST
Da bi koncept aktivnost to bolje bio predstavljen, neophodno je prvo predstaviti JAVA klasu koja nasleuje osnovnu klasu Activity.
Neka to bude klasa MainActivity.java.
package com.metropolitan.prvaandroidapp;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 3
ANDROIDMANIFEST DATOTEKA
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 4
IVOTNI CIKLUS AKTIVNOSTI
ivotni ciklus aktivnosti odreen je serijom dogaaja definisanih klasom Activity koju nasleuju klase aktivnosti Android aplikacija. Od
velike vanosti je razumevanje sledeih dogaaja:
onCreate() Poziva se prilikom prvog definisanja aktivnosti;
onStart()- Poziva se kada aktivnost postane vidljiva korisniku;
onResume() Poziva se kada korisnik zapone interakciju;
onStop() Poziva se kada aktivnost vie nije vidljiva korisniku;
onDestroy() Poziva se pre uklanjanja aktivnosti;
onRestart() Nakon zaustavljanja aktivnosti poziva se za njeno ponovno pokretanje.
Po osnovnim podeavanjima, kreirana aktivnost sadri onCreate() dogaaj koji pomae da se prikau korisniku elementi korisnikog
interfejsa.
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 5
IVOTNI CIKLUS AKTIVNOSTI - NASTAVAK
Aktivnostima u sistemu se upravlja kao Sledeom slikom prikazan je ivotni ciklus aktivnosti (izvor:
stekom aktivnosti. Svaka nova aktivnost http://developer.android.com).
se dodaje na vrh steka. Sve prethodne
aktivnosti se nalaze ispod u steku i ostaju
neaktivne sve dok tekua aktivnost ne
napusti stek.
Aktivnost se javlja u etiri osnovna oblika:
Ako je aktivnost u prvom planu na
ekranu, ima status active ili running;
Ako je aktivnost izgubila fokus, a
vidljiva je i dalje, pauzirana je;
Ako je aktivnost u potpunosti u senci
druge aktivnosti, zaustavljena je;
Ako je aktivnost pauzirana ili
zaustavljena, sistem moe da je
eliminie iz memorije. Za naredno
angaovanje aktivnosti neophodno je
njeno restartovanje.
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 6
DODAVANJE AKTIVNOSTI U ACTIVITY DATOTEKU
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 7
PRAENJE IVOTNOG CIKLUSA AKTIVNOSTI
U nastavku, neophodno je da se pritiskom na ctrl+s snimi izmenjena datoteka, a zatim pomou F11 izvri debagovanje na
pokrenutom AVD emulatoru. Prvo to treba proveriti jeste LogCat prozor gde se moe primetiti evidencija pokrenutih aktivnosti
(sledea slika).
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 8
UPOTREBA STILOVA I TEMA
Poetnim podeavanjima, aktivnosti se predaje celokupan ekran. Primenom tema mogue je promeniti poetna podeavanja. Tako,
ako se eli da se aktivnost prikae kao npr. iskaui prozor kojim se obavlja dijalog izmeu sistema i korisnika, primenom teme za
dijalog u tagu <Activity > datoteke AndroidManifest.xml poetna podeavanja se zamenjuju eljenim. Sledeim kodom je prikazan
deo AndroidManifest.xml datoteke u kojem su izvrene naznaene korekcije.
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 9
PRIKAZIVANJE OKVIRA DIJALOGA KORIENJEM AKTIVNOSTI
U realnim situacijama veoma esto je neophodno prikazati okvir za dijalog koji u sebi nosi potvrdu interakcije sa korisnikom. U tom
sluaju je neophodno izvriti predefinisanje zatiene metode onCreateDialog() definisane u osnovnoj klasi aktivnosti. Za ilustraciju
bie iskorien sledei primer.
Otvoriti Eclipse IDE, kreirati u com.metropolitan paketu novi projekat sa nazivom Dialog i proiriti main.xml datoteku sledeim kodom:
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 10
PRIKAZIVANJE OKVIRA DIJALOGA KORIENJEM AKTIVNOSTI - NASTAVAK
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 11
PRIKAZIVANJE OKVIRA DIJALOGA KORIENJEM AKTIVNOSTI JO KODA
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 12
PRIKAZIVANJE OKVIRA DIJALOGA KORIENJEM AKTIVNOSTI KRAJ I
DEMONSTRACIJA
Klikom na dugmad bie prikazane sve akcije definisane metodom.
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 13
FUNKCIONISANJE DIJALOG OKVIRA
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 14
PRIKAZIVANJE OKVIRA ZA DIJALOG PROGRESA
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 15
KORIENJE NAMERA ZA POVEZIVANJE AKTIVNOSTI
U Android operativnom sistemu namere imaju ulogu navigatora izmeu pojedinanih aktivnosti.
Svaka Android aplikacija moe biti izgraena od jedne ili vie aktivnosti. Ukoliko aplikacija sadri vie aktivnosti neophodno je
obezbediti mehanizme kojima se vri navigacija sa jedne aktivnosti na drugu. Taj zadatak u Android aplikacijama realizovan je
pomou namera. Za predstavljanje i razumevanje ovog koncepta bie uveden novi primer:
1. Kreirati nov projekat pod nazivom KoriscenjeNamera
2. Desnim klikom na folder src i izborom opcija new class kreirati nove dve klase pod nazivima: DrugaAktivnost i TrecaAktivnost.
3. U AndroidManifest.xml datoteci uraditi sledee dopune:
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 16
KREIRANJE VLASTITIH XML DATOTEKA ZA AKTIVNOSTI
U res/layout folderu neophodno je kreirati nove dve xml datoteke pod nazivima: DrugaAktivnost.xml i TrecaAktivnost.xml. Njihov kod
odgovara modifikaciji main.xml datoteke na sledei nain:
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 17
MODIFIKOVANJE JAVA DATOTEKA AKTIVNOSTI
U datoteke DrugaAktivnost.java i TrecaAktivnost.java dodati linije programskog koda na nain prikazan sledeom slikom:
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 18
MODIFIKACIJA MAIN.XML I KORISCENJENAMERA.JAVA DATOTEKA
Da bi bilo mogue potpuno sagledavanje angaovanja vie aktivnosti u jednoj Android aplikaciji neophodno je jo modifikovati
datoteke main.xml i KoriscenjeNamera.java na sledei nain:
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 19
DEMONSTRACIJA ANGAOVANJA VIE AKTIVNOSTI U APLIKACIJI
Kao to je naglaeno aktivnost je definisana odgovarajuom komponentom korisnikog interfejsa i klasom pa ukoliko je neophodno
dodati novu aktivnost u projekat, ove dve komponente moraju biti ukljuene. Kao to je ve pomenuto, aktivnost se dodaje u
aplikaciju navoenjem odgovarajueg koda u AndroidManifest.xml. U konkretnom primeru taj kod nosi sledee informacije:
1. Oznake novih aktivnosti su DrugaAktivnost i TrecaAktivnost;
2. Naziv filtera za nove aktivnosti je com.metropolitan.DrugaAktivnost i com.metropolitan.TrecaAktivnost;
3. Kategorija za filter namera je android.intent.category.DEFAULT . Ova kategorija je neophodna da bi neka aktivnost mogla da
bude pokrenuta drugom aktivnou pomou metode startActivity();
4. Klikom na taster, metodom startActivity() pokree se nova aktivnost npr DrugaAktivnost kreiranjem objekta klase Intent i
prosleivanjem filtera namera na sledei nain:
public void onClick(View view) {
startActivity (new Intent(" com.metropolitan.DrugaAktivnost "));
}
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 20
DEMONSTRACIJA ANGAOVANJA VIE AKTIVNOSTI U APLIKACIJI -
NASTAVAK
Pokretanjem emulatora testira se program za upravljanje aktivnostima.
Pokretanjem programa otvara se poetni ekran sa porukom koja Klikom na dugme pokree se druga aktivnost koja zahteva akcije
ukazuje na nain pokretanja druge aktivnosti. kao na sledeoj slici.
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 21
IZBEGAVANJE SUDARANJA FILTERA NAMERE
Ukoliko dve aktivnosti imaju isti naziv filtera Android prikazuje selekciju aktivnosti.
Ukoliko se pogleda u kod AndroidManifest.xml datoteke koji ukazuje na drugu i trecu aktivnost mogue je uoiti da obe aktivnosti
koriste isti filter:
<intent-filter >
<action android:name=com.metropilitan.DrugaAktivnost" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
Izvravanjem metode startActivity() Android operativni sistem e pokazati selekciju aktivnosti kao na sledeoj slici.
Slika-19 Selekcija
aktivnosti
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 22
PRELAZAK SA JEDNE AKTIVNOSTI NA DRUGU
Izvravanjem metode startActivity() i izborom tree aktivnosti u Android selekciji aktivnosti dolazi do izvravanja navedene aktivnosti.
Korigovanjem koda u AndroidManifest.xml datoteci, gde e kao filter namera biti uveden com.metropolitan.TrecaAktivnost, izbegava
se navedena selekcija i dolazi do direktnog izvravanja tree aktivnosti.
Slika-20 Aktivnost
TrecaAktivnost
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 23
VRAANJE REZULTATA IZ INICIRANE AKTIVNOSTI
Metoda startActivity() inicira drugu aktivnost ali ne vraa rezultat u trenutnu aktivnost.
Metoda startActivity() inicira drugu aktivnost ali ne vraa rezultat u trenutnu aktivnost. Ako se obrati panja na primer, mogue je
uoiti da se u drugoj aktivnosti zahteva unoenje korisnikih podataka. Klikom na odgovarajue dugme, ovi podaci trebalo bi da se
proslede u poetnu aktivnost. Za navedenu akciju koristi se metoda startActivityForResult(), a to je prikazano slikom18. Neophodno
je navesti i sledee:
1. Da bi aktivnost bila inicirana i rezultati izvravanja bili prikazani, neophodno je upotrebiti navedenu metodu na sledei nain:
startActivityForResult (new Intent(com.metropolitan.DrugaAktivnost"), request_Code);
2. Da bi aktivnost vratila vrednost u polaznu aktivnost, neophodno je koristiti Intent objekat koji koristi metodu setData() za vraanje
podataka nazad.
3. Metoda setResult() definie kod (RESULT_OK ili RESULT_CANCELLED) i Intent objekat koji se vraaju u polaznu aktivnost.
4. Metoda finish() prekida tekuu aktivnost i vraa kontrolu na polaznu aktivnost.
5. Polazna aktivnost mora da poseduje metodu onActivityResult() koja se izvrava kada se vraa vrednost iz inicirane aktivnosti.
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 24
UPOZNAVANJE KONCEPTA FRAGMENT
Fragmenti su detalji aktivnosti koji Fragmenti su ukljueni u Android API od verzije Honeycomb (API 11).
omoguavaju viemodularni dizajn
Fragmenti se kreiraju kroz nasleivanje klase Fragment, a dodaju se u aktivnost
aktivnosti. Fragment moe da se tumai
uvoenjem taga <Fragment . /> u xml datoteku aktivnosti. Sledeom slikom
kao podaktivnost.
prikazano je kako dva UI modula mogu biti kombinovana kao jedna aktivnost na tablet
Za fragmente vai sledee: dizajnu ili kao odvojene na dizajnu mobilnog telefona. Aktivnost je u direktnoj vezi sa
veliinom ekrana.
Svaki fragment ima vlastiti izgled,
ponaanje i ivotni ciklus;
Fragmente je mogue dodavati i brisati
iz aktivnosti dok je ona aktivna;
Mogue je kombinovati vie
fragmenata u jednu aktivnost sa ciljem
postizanja sloenog korisnikog
interfejsa;
ivotni ciklus fragmenta je u direktnoj
vezi sa ivotnim ciklusom aktivnosti u
koju je ugraen fragment;
Fragment moe da implementira
ponaanje koje ne ukljuuje
komponentu korisnikog interfejsa;
Slika-1 Fragmenti i veliina ekrana (izvor tutorialspoint.com)
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 25
IVOTNI CIKLUS FRAGMENATA
Android fragmenti imaju vlastite ivotne cikluse veoma slino kao Najvei broj stanja fragmenata identian je stanjima aktivnosti.
i aktivnosti. Sledeom slikom prikazane su razliite faze ivotnog Ipak, postoji nekoliko stanja karakteristinih iskljuivo za
ciklusa fragmenta. fragmente:
onAttached() Izvrava se kada se fragment povezuje sa
aktivnou;
onCreateView() Izvrava se kada se definie pogled na
fragment;
onActivityCreated() Izvrava se kada se vrati rezultat
onCreate() metode aktivnosti.
onDestroyView() Izvrava se kada se ukloni pogled na
fragment;
onDetach() Izvrava se kada se fragment ukloni iz odreene
aktivnosti.
Slika-2 ivotni ciklus fragmenta (izvor tutorialspoint.com)
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 26
UPOTREBA FRAGMENATA
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 27
TIPOVI FRAGMENATA
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 28
PRIMER KORIENJA FRAGMENATA
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 29
PRIMER KORIENJA FRAGMENATA XML DATOTEKE
U main.xml datoteci dodati programski kod kao to je prikazano prvom kolonom sledee slike, a zatim kreirati datoteke fragment1.xml
i fragment2.xml na nain prikazan drugom i treom kolonom slike. Sve datotene moraju da se nalaze u res/layout folderu.
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 30
PRIMER KORIENJA FRAGMENATA JAVA DATOTEKE
U paketu, koji je nazvan com.matropolitan.Fragmenti, a u folderu src kreirati dve datoteke koje sadre JAVA klase fragmenata.
Datoteke e biti nazvane Fragment1.java i Fragment2.java. Kod klasa prikazan je sledeom slikom.
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 31
PRIMER KORIENJA FRAGMENATA TESTIRANJE KODA
Klikom na taster F11 aplikacija se debaguje u Android emulatoru nakon ega prikazuje na istom ekranu dve aktivnosti. Interakcijom
korisnika sa interfejsom aplikacija demonstrira vlastitu funkcionalnost (sledea slika).
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 32
NAIN FUNKCIONISANJA FRAGMENATA
Fragment funkcionie slino kao i aktivnost, definisan je odgovarajuom JAVA klasom, a uitava
interfejs iz xml datoteke.
Fragment funkcionie slino kao i aktivnost, definisan je odgovarajuom JAVA klasom, a uitava interfejs iz xml datoteke. JAVA klasa
fragmenta nasleuje baznu klasu Fragment:
public class Fragment1 extends Fragment {..}
Pored bazne klase, fragment moe da nasleuje i klase koje su izvedene iz klase Fragment poput: DialogFragment, ListFragment,
PreferenceFragment i sl.
Metodom onCreateView() vraa se View objekat, a to je definisano sledeim kodom:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate (R.layout.fragment2, container, false);
}
Korienjem objekta LayoutInflater definisan je korisniki interfejs prikazan pomou xml datoteke. Argument container ukazuje na
osnovni ViewGroup element, a to je aktivnost koja se ugrauje u fragment. Argument savedInstanceState omoguava vraanje
prethodno zapamenog stanja fragmenta.
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 33
IZVRAVANJE UGRAENIH APLIKACIJA PRIMENOM NAMERA
Korienjem Intent objekata mogue je iskoristiti ugraene aplikacije umesto da kreiramo vlastite
za postizanje odreene svrhe programa.
Sve to je do sada prikazano oslanjalo se na kreiranje i izvravanje aktivnosti vlastitih aplikacija. Jedan od najvanijih segmenata
Android programiranja jeste mogunost upotrebe aktivnosti koje su definisane u drugim aplikacijama. Svaka aplikacija, koja se kreira,
ima mogunost poziva brojnih aplikacija koje su dostupne na konkretnom mobilnom ureaju. U konkretnom sluaju, ukoliko aplikacija
zahteva uitavanje odreene web stranice, dovoljno je iskoristiti Intent objekat sa ciljem upotrebe postojeeg web itaa, umesto
kreiranja novog.
U daljem izlaganju, zadatak e biti na uvoenju konkretnog primera za demonstraciju izvravanja izvesnih ugraenih aplikacija koje
se u velikoj meri nalaze instalirane na svakom mobilnom ureaju.
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 34
PRIMER UPOTREBE INTENT OBJEKATA
Konstuktorom Intent objekta definie se akcija koju taj objekat treba da obavi.
Zadatak:
1. Koristei Eclipse IDE kreirati novi Android projekat sa nazivom Namere;
2. Na odreeni nain izvriti modifikacije u main.xml datoteci dodati dugmie koji e inicirati konkretne akcije nad ugraenim
aplikacijama;
3. Modifikovati JAVA klasu aktivnosti tako to e svaka akcija biti pokrivena odgovarajuim Intent objektom;
4. Prevesti program i pokrenuti da na Android emulatoru.
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 35
KOREKCIJE MAIN.XML DATOTEKE
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 36
JAVA DATOTEKE SA INTENT OBJEKTIMA
Prva akcija podrazumeva kreiranje glavne klase aktivnosti. Potom je neophodno definisati i klasu
aktivnosti za web ita.
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 37
ANDROIDMANIFEST.XML DATOTEKA
Sledei zadatak, vezan za tekui primer, jeste isticanje AndroidManifest.xml datoteke. Aktuelna datoteka prikazana je kodom sa
sledee slike.
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 38
DEMONSTRACIJA FUNKCIONALNOSTI PRIMERA
Pokretanjem programa pojavljuje se poetna stranica kao na Izborom prve opcije otvara se ugraenja aplikacija web itaa sa
sledeoj slici. unapred definisanom stranicom.
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 39
DEMONSTRACIJA FUNKCIONALNOSTI PRIMERA - NASTAVAK
Izborom opcije Pozovi otvara se aplikacija za obavljanje Izborom opcije Prikai mapu otvara se web ita koji pokree
telefonskih poziva. Google mape sa prezentacijom definisane lokacije.
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 40
NAIN FUNKCIONISANJA PROGRAMA ZA POZIVANJE UGRAENIH
APLIKACIJA
Namere za pozivanje aplikacija ine par: akcija i podaci.
U primeru je demonstrirano korienje Intent klase za pozivanje Akcija i podaci su vrednosti kojima je definisana operacija koja
aplikacija koje su sastavni deo Android operativnog sistema treba da se izvri. Kao to je pokazano u primeru, da bi neki
skoro svakog mobilnog ureaja. telefonski broj bio pozvan neophodno je koristiti par
ACTION_DIAL/ tel: +381692030885. Da bi neki kontakt bio
U Android operativnom sistemu namere kojima se pozivaju
izabran iz liste koristi se par ACTION_PICK/content://contacts.
ugraene aplikacije imaju formu para: akcija i podaci. Akcijom je
definisano kako se neto izvrava npr. prikazivanje odreenog Konkretno, u primeru je za prvu komponentu korisnikog
sadraja, a podaci ukazuju detalje na koje se utie npr. broj interfejsa kreiran Intent objekat pri emu su u njegov konstruktor
telefona u bazi kontakata i specificirani su kao odreeni Uri prosleena dva podatka koja odgovaraju akciji i podacima:
objekti.
Intent i = new
Ovo su primeri najee korienih akcija:
Intent("android.intent.action.VIEW");
ACTION_VIEW,
i.setData(Uri.parse("http://www.metropolitan.edu.rs/"));
ACTION_DIAL;
startActivity(i);
ACTION_PICK, itd.
Navedena aktivnost je ponovljena i za ostale komponente
U primeru su definisani sledei podaci (Uri objekti): korisnikog interfejsa kojima se pozivaju ugraene aplikacije.
www.metropolitam.edu.rs;
tel: +381692030885;
geo:44.8305354,20.4550463, itd.
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 41
INTENT OBJEKAT
Do sada je naueno da se pozivanje neke druge aktivnosti Pored akcije i tipa podataka, Intent objekat, a to je pokazano u
obavlja tako to se njene akcije prosleuju u konstruktor Intent primeru, moe da specificira i kategoriju kao skup aktivnosti
objekta: grupisanih u logike jedinice koje Android koristi za filtriranje.
Intent i = new (Intent(android.content.Intent.ACTION_DIAL, Intent objekat moe da sadri sledee informacije:
Uri.parse("tel:+381692030885")); Action;
startActivity(i); Data;
Type;
Meutim, podatke je mogue prosledeiti Intent objektu i Category.
upotrebom metode setData() na sledei nain:
Intent i = new Intent("android.intent.action.VIEW");
i.setData(Uri.parse("http://www.metropolitan.edu.rs/"));
startActivity(i);
Na ovaj nain Android operativnom sistemu je sugerisano da se
nastoji pristupiti web stranici koja se nalazi na konkretnoj URL
adresi.
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 42
KORIENJE INTENT FILTERA NA UGRAENE APLIKACIJE
Intent filteri, kojima jedna aplikacija inicira drugu, definisani su AndroidManifest.xml datoteci.
U primeru je detaljno pokazano kako jedna aktivnost inicira drugu primenom Intent objekta. Da bi bilo mogue aktiviranje jedne
aktivnosti drugom, neophodno je specificirati akciju i kategoriju u okviru xml taga <intent-filter> </intent-filter> datoteke
AndroidManifest.xml. Navedeno je mogue prikazati sledeim programskim kodom:
<intent-filter>
<action android:name="com.metropolitan.Citac" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http" />
</intent-filter>
29.07.2015 UNIVERZITET METROPOLITAN, Beograd / Kopiranje i umnoavanje nije dozvoljeno / Sva prava su zadrana. V1.20 43