Android hensikter og Filters

En Android Intent
er en abstrakt beskrivelse av en operasjon som skal utføres. Den kan brukes med startActivity
å starte en aktivitet, broadcastIntent
å sende den til alle interesserte BroadcastReceiver komponenter, og startService (Intent)
eller bindService ( Intent, ServiceConnection, int)
å kommunisere med en bakgrunnstjeneste.
Hensikten seg selv, en intensjonsavtale objekt, er en passiv datastruktur som holder en abstrakt beskrivelse av en operasjon som skal utføres.
< p> For eksempel, la oss anta at du har en aktivitet som må starte et e-postklient og sender en e-post med din Android-enhet. For dette formålet, vil din aktivitet send en ACTION_SEND sammen med passende chooser
, til Android Intent Resolver. Den angitte velgeren gir riktig grensesnitt for brukeren å velge hvordan du sender e-post data
Intent epost = new Intent (Intent.ACTION_SEND, Uri.parse ("mailto:"));. Email.putExtra (Intent.EXTRA_EMAIL Mottakerne);. email.putExtra (Intent.EXTRA_SUBJECT, subject.getText () toString ()); email.putExtra (Intent.EXTRA_TEXT, body.getText () toString ());. startActivity (Intent.createChooser (e-post, "Velg en e-postklient fra ..."));

Over syntaks kaller startActivity metoden for å starte en epost aktivitet og resultatet skal være som vist nedenfor

For eksempel anta at du har en aktivitet som trenger å åpne URL i en nettleser på din Android-enhet. For dette formålet, vil din aktivitet sende ACTION_WEB_SEARCH Intent til Android Intent Resolver å åpne gitt URL i nettleseren. Den Intent Resolver analyserer gjennom en liste over aktiviteter og velger den som ville best passer ditt Intent, i dette tilfellet, nettleser aktivitet. Den Intent Resolver passerer deretter din nettside til nettleseren og starter nettleser aktivitet
String q = "tutorialspoint";. Intent hensikt = new Intent (Intent.ACTION_WEB_SEARCH); intent.putExtra (SearchManager.QUERY, q); startActivity (forsett);

Over eksempel vil søke som tutorialspoint
på android søkemotor, og det gir et resultat av tutorialspoint i en aktivitet

Det er egne mekanismer for å levere hensikter til . hver type komponent - aktiviteter, tjenester og kringkastingsmottakere
Sr.NoMethod & Description1 Context.startActivity ()

Intent objektet er gått til denne metoden for å starte en ny aktivitet eller få en eksisterende aktivitet å gjøre noe nytt.
2 Context.startService ()

Intent objektet er gått til denne metoden for å starte en tjeneste eller levere nye instruksjoner til en pågående tjeneste.
3 Context.sendBroadcast ()

Intent objektet er passert til denne metoden for å levere meldingen til alle interesserte mottakere for kringkasting.

Intent Objekter

En Intent objektet er en bunt av informasjon som blir brukt av den som mottar den hensikt samt informasjon brukt av Android-systemet

En Intent objekt kan inneholde følgende komponenter basert på hva den kommuniserer eller kommer til å utføre −.

Handling

Dette er obligatorisk del av Intent objekt og en streng navngi den handling som skal utføres - eller, i tilfelle av kringkastings hensikter, handlingen som fant sted, og blir rapportert. Handlingen i stor grad bestemmer hvordan resten av hensikten objektet er strukturert. Den Intent klassen definerer en rekke tiltak konstanter som svarer til ulike hensikter. Her er en liste over Android Intent Standard Handlinger

Handlingen i en Intent objekt kan settes av setAction () metoden og lest av getAction ().

Data

Legger til en data til en intensjon filter. Spesifikasjonen kan være bare en datatype (mimetype egenskap), bare en URI, eller begge en datatype og en URI. En URI er spesifisert av separate attributter for hver av delene og minus;

Disse attributtene som angir URL-formatet er valgfrie, men også gjensidig avhengig −

Hvis en ordning ikke er spesifisert for hensikt filter, er alle de andre URI attributter ignorert.

Hvis en host ikke er spesifisert for filter, blir porten attributtet og alle bane attributter ignorert.

setData ( ) metoden spesifiserer data bare som en URI, setType () spesifiserer det bare som en MIME-type, og setDataAndType () spesifiserer det som både en URI og en MIME-type. URI blir lest av GetData () og type av getType ()

Noen eksempler på action /dataparene er −.
SNAction /data Pair & Description1 ACTION_VIEW innhold: //kontakter /folk /en

Vis informasjon om personen som identifikator er "1"
2 ACTION_DIAL innhold. //Kontakter /folk /1

Visning telefonen oppringeren med personen utfylt
3 ACTION_VIEW tlf.. 123

Vise oppringings med gitt antall utfylt
4 ACTION_DIAL tel: 123

Vise oppringings med gitt antall utfylt
5 ACTION_EDIT innhold. //kontakter /folk /en

Rediger informasjon om personen som identifikator er "1"
6 ACTION_VIEW innhold:.. //kontakter /folk /

Vis en liste over personer, som brukeren kan bla gjennom
7 ACTION_SET_WALLPAPER

Vis innstillinger for å velge bakgrunns
8 ACTION_SYNC

Det kommer til å være synkrone data, er android.intent.action.SYNC

9 ACTION_SYSTEM_TUTORIAL

Det vil starte plattformen definerte tutorial (Standard opplæringen eller starte opp tutorial)
10 ACTION_TIMEZONE_CHANGED

Det antyder når tidssonen er endret
11 ACTION_UNINSTALL_PACKAGE

Den brukes til å kjøre standard avinstalleringsprogram

Kategori

Kategorien er en valgfri del av Intent objekt, og det er en streng som inneholder ytterligere informasjon om den type komponent som skal håndtere den hensikt. Den addCategory () metoden plasserer en kategori i et Intent objekt, removeCategory () sletter en kategori som tidligere lagt til, og getCategories () får sett alle kategorier tiden i objektet. Her er en liste over Android Intent Standard kategorier.

Du kan sjekke detaljer på Intent filtre i under avsnittet for å forstå hvordan vi bruker kategorier å velge passende aktivitet tilsvarer en Intent.

Extras

Dette vil være i nøkkelverdipar for tilleggsinformasjon som skal leveres til komponenten håndtering intensjonen. Statister kan stilles og lese ved hjelp av putExtras () og getExtras () metoder hhv. Her er en liste over Android Intent Standard Extra data

Flags

Disse flaggene er valgfrie delen av Intent objekt og instruere Android-systemet hvordan å starte en aktivitet, og hvordan å behandle den etter at den er lansert etc.
Sr.NoFlags & Description1 FLAG_ACTIVITY_CLEAR_TASK

Hvis satt i en Intent gått til Context.startActivity (), dette flagget vil føre til noen eksisterende oppgave som vil bli assosiert med den aktiviteten som skal ryddes før aktiviteten starter. Det vil si at aktiviteten blir den nye roten av et ellers tomt oppgave, og eventuelle gamle aktiviteter er ferdig. Dette kan kun brukes i forbindelse med FLAG_ACTIVITY_NEW_TASK.
2 FLAG_ACTIVITY_CLEAR_TOP

Hvis satt, og aktiviteten blir lansert allerede kjører i den aktuelle oppgaven, så i stedet for å lansere en ny forekomst av at aktiviteten , alle de andre aktivitetene på toppen av det vil bli lukket, og dette Intent vil bli levert til den (nå på toppen) gammel aktivitet som en ny intensjonsavtale.
3 FLAG_ACTIVITY_NEW_TASK

Dette flagget er vanligvis brukt av aktiviteter som ønsker å presentere en "launcher" stil oppførsel. de gir brukeren en liste over separate ting som kan gjøres, som ellers kjører helt uavhengig av aktiviteten lansere dem

Navn Component

Dette valgfrie feltet er en android ComponentName
objekt som representerer enten aktivitet, tjeneste eller BroadcastReceiver klasse. Hvis den er satt, blir Intent objektet levert til en forekomst av den angitte klassen ellers Android bruker andre opplysninger i Intent objektet for å finne et passende mål.

Komponenten navn er satt av setComponent (), setClass ( ), eller setClassName () og lest av getComponent ().

Typer Intents

Det er følgende to typer hensikter som støttes av Android

Explicit hensikter
< p> Explicit hensikt kommer til å være koblet indre verden av søknaden, antar at hvis du ønsker å koble en aktivitet til en annen aktivitet, kan vi gjøre dette sitatet av eksplisitte hensikt, under bilde kobler første aktiviteten til andre aktivitet ved å klikke knappen. Anmeldelser

Disse hensikter utpeke målkomponenten av navnet, og de er vanligvis brukt for applikasjons interne meldinger - for eksempel en aktivitet starter en underordnet tjeneste eller lansere en søster aktivitet. For eksempel −
//Explicit Intent ved å spesifisere sin klasse nameIntent i = ny Intent (FirstActivity.this, SecondAcitivity.class); //Starter TargetActivitystartActivity (i);
Implisitt Intents

Disse hensikter ikke nevne et mål og feltet for komponenten navn blir stående tomt. Implisitt hensikter blir ofte brukt for å aktivere komponenter i andre anvendelser. For eksempel −
Intent read1 = new Intent();read1.setAction(android.content.Intent.ACTION_VIEW);read1.setData(ContactsContract.Contacts.CONTENT_URI);startActivity(read1);

Above koden vil gi resultat som vist nedenfor

Målet komponent som mottar den hensikt kan bruke getExtras ()
metode for å få de ekstra data som sendes av kildekomponenten. For eksempel −
//Få bunt objekt på egnet sted i dine codeBundle statister = getIntent () getExtras ();. //Pakk data ved hjelp passert keysString verdi1 = extras.getString ("Key1"); String verdi2 = statister .getString ("NØKKEL2");.
Eksempel

Følgende eksempel viser funksjonaliteten til en Android Intent å lansere ulike Android innebygde programmer
StepDescription1You vil bruke Android studio IDE å lage en Android-applikasjon og gi den navnet som Min Application
under en pakke com.example.saira_000.myapplication
. Mens du oppretter dette prosjektet, må du Target SDK Hotell og kompilere med
på den nyeste versjonen av Android SDK til å bruke høyere nivåer av APIs.2Modify src /main /java /MainActivity .java
fil og legge til koden for å definere to lyttere tilsvarende to knapper ie. Starte Browser og start Phone.3Modify layout XML fil res /layout /activity_main.xml
å legge tre knapper i lineær layout.4Run søknaden å lansere Android emulator og kontrollere resultatet av de endringer som er gjort i søknaden.

Følgende er innholdet i den modifiserte hovedaktivitet filen src /com.example.My Søknad /MainActivity.java
pakken com.example.saira_000.myapplication;. import android.content.Intent; import android.net.Uri, import android.support.v7.app.ActionBarActivity, import android.os.Bundle, import android.view.Menu, import android.view.MenuItem, import android.view.View; import android. widget.Button; public class MainActivity strekker ActionBarActivity {Button b1, b2; Override Beskyttet void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); b1 = (Button) findViewById (R.id.button); b1.setOnClickListener (ny View.OnClickListener () {Override public void onClick (Vis v) {Intent i = new Intent (android.content.Intent.ACTION_VIEW, Uri.parse ("http://www.example.com" )); startActivity (i);}}); b2 = (Button) findViewById (R.id.button2); b2.setOnClickListener (ny View.OnClickListener () {Override public void onClick (Vis v) {Intent i = new Intent (android.content.Intent.ACTION_VIEW, Uri.parse ("tel: 9510300000")); startActivity (i );}}); }Override Public boolean onCreateOptionsMenu (Meny menyen) {//Blås menyen; dette legger til elementer i handlingsfeltet hvis det er til stede. . getMenuInflater () blåse (R.menu.menu_main, menyen); return true; }Override Public boolean onOptionsItemSelected (MENUITEM element) {//Håndtak handlingen bar varen klikk her. Handlingsfeltet vil //automatisk håndtere klikker på Hjem /Opp-knappen, så lenge //som du angir en forelder aktivitet i AndroidManifest.xml. int id = item.getItemId (); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) {return true; } Returnere super.onOptionsItemSelected (element); }}

Etter vil være innholdet i res /layout /activity_main.xml
fil −
< RelativeLayout xmlns: android = "http://schemas.android.com/apk/res /Android "xmlns: verktøy =" http://schemas.android.com/tools "android: layout_width =" match_parent "android: layout_height =" match_parent "android: paddingLeft =" @ dimen /activity_horizontal_margin "android: paddingRight =" @ dimen /activity_horizontal_margin "android: paddingTop =" @ dimen /activity_vertical_margin "android: paddingBottom =" @ dimen /activity_vertical_margin "verktøy: kontekst =" MainActivity ">. < TextView android: id = "+ id /textView1" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Intent Eksempel" android: layout_alignParentTop = "true" android: layout_centerHorizontal = "true" android: Tekststørrelse = "30dp" /> < TextView android: id = "+ id /textView2" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Tutorials point" android: textcolor = "# ff87ff09" android: Tekststørrelse = "30dp "android: layout_below =" + id /textView1 "android: layout_centerHorizontal =" true "/> < ImageButton android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: id = "+ id /imageButton" android: src = "@ teikne /abc" android: layout_below = "+ id /textView2" android : layout_centerHorizontal = "true" /> < EditText android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: id = "+ id /EditText" android: layout_below = "+ id /imageButton" android: layout_alignRight = "+ id /imageButton" android: layout_alignEnd = "+ id /imageButton" /> < Button android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Start Browser" android: id = "+ id /knapp" android: layout_alignTop = "+ id /EditText" android: layout_alignRight = "+ id /textView1" android: layout_alignEnd = "+ id /textView1" android: layout_alignLeft = "+ id /imageButton" android: layout_alignStart = "+ id /imageButton" /> < Button android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Starte Phone" android: id = "+ id /knappen2" android: layout_below = "+ id /knapp" android: layout_alignLeft = "+ id /knapp" android: layout_alignStart = "+ id /knapp" android: layout_alignRight = "+ id /textView2" android: layout_alignEnd = "+ id /textView2" /> < /RelativeLayout > < p> Etter vil være innholdet i res /verdier /strings.xml
å definere to nye konstanter og minus;
<? xml version = "1.0" encoding = "utf-8" > < resources > < string name = "APP_NAME" > Min Applicaiton < /string > < string name = "action_settings" > Innstillinger < /string > < /ressurser >

Følgende er innholdet mislighold av AndroidManifest.xml

<? xml version = " 1.0 "encoding =" utf-8 "> < manifest xmlns:? android =" http://schemas.android.com/apk/res/android "pakken =" com.example.My Application "android: version = "1" android: versjon = "1.0" > < bruker-SDK android: minSdkVersion = "8" android: targetSdkVersion = "22" /> < søknad android: allowBackup = "true" android: icon = "@ teikne /ic_launcher" android: label = "@ streng /APP_NAME" android: tema = "@ stil /AppTheme" > < aktivitet android: name = "com.example.saira_000.myapplication.MainActivity" android: label = "@ streng /APP_NAME" > < intent-filter > < handling android: name = "android.intent.action.MAIN" /> < kategori android: name = "android.intent.category.LAUNCHER" /> < /intent-filter > < /aktivitets > < /søknad > < /manifest >

La oss prøve å kjøre ditt Min Application
søknad. Jeg antar at du hadde laget ditt AVD
mens du gjør oppsett miljø. For å kjøre programmet fra Android Studio, åpne en av prosjektets aktivitets filer, og klikk Kjør ikonet fra toolbar.Android Studio installerer programmet på AVD og starter den, og hvis alt er bra med oppsettet og søknad, vil det vise følgende Emulator vindu og minus;

Nå klikker du på Start Browser
knappen, som vil starte en nettleser konfigurert og vise http://www.example.com som vist nedenfor −

lignende måte kan du starte telefonens grensesnitt ved hjelp av Start-Phone-knappen, som vil tillate deg å ringe allerede gitt telefonnummeret.

Intent Filters

Du har sett hvordan en intensjonsavtale har blitt brukt til å ringe en annen aktivitet. Android OS bruker filtre for å finne det sett av aktiviteter, tjenester og sendte mottakere som kan håndtere Intent med hjelp av spesifisert sett av action, kategorier, data ordning knyttet til en intensjonsavtale. Du vil bruke < intent-filter >
element i manifestfilen å liste ned handlinger, kategorier og datatyper i forbindelse med enhver aktivitet, service, eller kringkaste mottaker

Følgende er et eksempel. av en del av AndroidManifest.xml
fil for å angi en aktivitet com.example.My Application.CustomActivity
som kan påberopes av en av de to nevnte handlinger, én kategori, og en data −
< aktivitet android: ". CustomActivity" name = android: label = "@ streng /APP_NAME" > < intent-filter > < handling android: name = "android.intent.action.VIEW" /> < handling android: name = "com.example.My Application.LAUNCH" /> < kategori android: name = "android.intent.category.DEFAULT" /> < data android: Ordningen = "http" /> < /intent-filter > < /aktivitets >

Når denne aktiviteten er definert sammen med ovennevnte filtre, vil andre aktiviteter kunne påberope denne aktiviteten ved hjelp av enten android.intent.action.VIEW
, eller ved hjelp av com.example.My Application.LAUNCH
handling gitt sin kategori er android.intent.category.DEFAULT

<. data >
element angir datatypen forventes av aktiviteten å bli kalt og for eksempelet ovenfor våre tilpasset aktivitet forventer dataene til å begynne med "http: //"

Det kan være en situasjon som en intensjon kan passere gjennom filtrene mer enn en aktivitet eller en tjeneste, kan brukeren bli bedt om hvilken komponent for å aktivere. Et unntak er hevet hvis ingen mål kan bli funnet

Det er følgende test Android sjekker før påkalle en aktivitet −.

  • Et filter < intent-filter > kan gi mer enn én handling som vist ovenfor, men denne listen kan ikke være tom; et filter må inneholde minst én < handling > element, ellers vil den blokkere alle hensikter. Hvis mer enn ett tiltak er nevnt da Android prøver å matche en av de nevnte tiltakene før påberope aktiviteten

    Et filter. ≪ intent-filter > kan vise null, én eller mer enn én kategorier. hvis det er ingen kategori nevnt da Android alltid passere denne testen, men hvis mer enn én kategoriene er nevnt så for en intensjon om å passere kategori test, må hver kategori i Intent objektet matche en kategori i filteret.

    Hver < data > element kan angi en URI og en datatype (MIME medietype). Det er egne attributter som ordningen, host, port
    , og
    banen for hver del av URI. En Intent objekt som inneholder både en URI og en datatype passerer datatypen delen av testen bare hvis sin type kamper en type oppført i filteret.

    Eksempel

    Følgende eksempel er en modifikasjon av den ovennevnte eksempel. Her vil vi se hvordan Android løser konflikter hvis man hensikten er å påberope to aktiviteter definert i, ved hvordan å påkalle en tilpasset aktivitet ved hjelp av et filter og tredje er et unntak tilfelle hvis Android ikke sende passende aktivitet definert for en hensikt. Anmeldelser StepDescription1You vil bruke android studio for å lage en Android-applikasjon, og gi det et navn som Min Application
    under en pakke com.example.saira_000.myapplication
    . Mens du oppretter dette prosjektet, må du Target SDK Hotell og kompilere med
    på den nyeste versjonen av Android SDK til å bruke høyere nivåer av APIs.2Modify src /Main /Java /MainActivity .java
    fil og legge til koden for å definere tre lyttere som tilsvarer tre knapper som er definert i layout file.3Add en ny src /Main /Java /CustomActivity.java
    fil for å ha en tilpasset aktivitet som vil være påberopes av forskjellig intents.4Modify layout XML fil res /layout /activity_main.xml
    å legge tre knapper i lineær layout.5Add én layout XML fil res /layout /custom_view.xml
    å legge en enkel < TextView > å vise passert data gjennom intent.6Modify AndroidManifest.xml
    å legge < intent-filter > definere regler for at du ønsker å påberope tilpasset activity.7Run programmet til å lansere Android emulator og kontrollere resultatet av de endringer som er gjort i programmet.

    Følgende er innholdet i den modifiserte hovedaktivitet filen src /MainActivity. java
    pakken com.example.saira_000.myapplication;. import android.content.Intent, import android.net.Uri, import android.support.v7.app.ActionBarActivity, import android.os.Bundle; import android.view.Menu, import android.view.MenuItem, import android.view.View, import android.widget.Button; public class MainActivity strekker ActionBarActivity {Button b1, b2, b3; Override Beskyttet void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); b1 = (Button) findViewById (R.id.button); b1.setOnClickListener (ny View.OnClickListener () {Override public void onClick (Vis v) {Intent i = new Intent (android.content.Intent.ACTION_VIEW, Uri.parse ("http://www.example.com" )); startActivity (i);}}); b2 = (Button) findViewById (R.id.button2); b2.setOnClickListener (ny View.OnClickListener () {Override public void onClick (Vis v) {Intent i = new Intent ("com.example.My Application.LAUNCH", Uri.parse ("http: //www.example Com ")); startActivity (i);}}); b3 = (Button) findViewById (R.id.button3); b3.setOnClickListener (ny View.OnClickListener () {Override public void onClick (Vis v) {Intent i = new Intent ("com.example.My Application.LAUNCH", Uri.parse ("http: //www.example Com ")); startActivity (i);}}); }Override Public boolean onCreateOptionsMenu (Meny menyen) {//Blås menyen; dette legger til elementer i handlingsfeltet hvis det er til stede. . getMenuInflater () blåse (R.menu.menu_main, menyen); return true; }Override Public boolean onOptionsItemSelected (MENUITEM element) {//Håndtak handlingen bar varen klikk her. Handlingsfeltet vil //automatisk håndtere klikker på Hjem /Opp-knappen, så lenge //som du angir en forelder aktivitet i AndroidManifest.xml. int id = item.getItemId (); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) {return true; } Returnere super.onOptionsItemSelected (element); }}

    Følgende er innholdet i den modifiserte hovedaktivitet filen src /com.example.My Søknad /CustomActivity.java
    pakken com.example.saira_000.myapplication;. import android.app .Activity, import android.net.Uri, import android.os.Bundle, import android.widget.TextView; public class CustomActivity strekker Aktivitet {Override public void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.custom_view); TextView label = (TextView) findViewById (R.id.show_data); Uri url = getIntent () GetData (.); label.setText (url.toString ()); }}

    Etter vil være innholdet i res /layout /activity_main.xml
    fil −
    < RelativeLayout xmlns: android = "http://schemas.android.com/apk/res /Android "xmlns: verktøy =" http://schemas.android.com/tools "android: layout_width =" match_parent "android: layout_height =" match_parent "android: paddingLeft =" @ dimen /activity_horizontal_margin "android: paddingRight =" @ dimen /activity_horizontal_margin "android: paddingTop =" @ dimen /activity_vertical_margin "android: paddingBottom =" @ dimen /activity_vertical_margin "verktøy: kontekst =" MainActivity ">. < TextView android: id = "+ id /textView1" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Intent Eksempel" android: layout_alignParentTop = "true" android: layout_centerHorizontal = "true" android: Tekststørrelse = "30dp" /> < TextView android: id = "+ id /textView2" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Tutorials point" android: textcolor = "# ff87ff09" android: Tekststørrelse = "30dp "android: layout_below =" + id /textView1 "android: layout_centerHorizontal =" true "/> < ImageButton android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: id = "+ id /imageButton" android: src = "@ teikne /abc" android: layout_below = "+ id /textView2" android : layout_centerHorizontal = "true" /> < EditText android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: id = "+ id /EditText" android: layout_below = "+ id /imageButton" android: layout_alignRight = "+ id /imageButton" android: layout_alignEnd = "+ id /imageButton" /> < Button android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Begynn å søke med utsikt action" android: id = "+ id /knapp" android: layout_alignTop = "+ id /EditText" android: layout_alignRight = "+ id /textView1" android: layout_alignEnd = "+ id /textView1" android: layout_alignLeft = "+ id /imageButton" android: layout_alignStart = "+ id /imageButton" /> < Button android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Begynn å søke med lanseringen action" android: id = "+ id /knappen2" android: layout_below = "+ id /knapp" android: layout_alignLeft = "+ id /knapp" android: layout_alignStart = "+ id /knapp" android: layout_alignRight = "+ id /textView2" android: layout_alignEnd = "+ id /textView2" /> < Button android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "Eksepsjonell tilstand" android: id = "+ id /Button3" android: layout_below = "+ id /knappen2" android: layout_alignLeft = "+ id /knappen2" android: layout_alignStart = "+ id /knappen2" android: layout_alignRight = "+ id /textView2" android: layout_alignEnd = "+ id /textView2" /> < /RelativeLayout > < p> Etter vil være innholdet i res /layout /custom_view.xml
    fil −
    <? xml version = "1.0" encoding = "UTF-8" >? < LinearLayout xmlns : android = "http://schemas.android.com/apk/res/android" android: orientering = "vertikal" android: layout_width = "fill_parent" android: layout_height = "fill_parent" > < TextView android: id = "+ id /show_data" android: layout_width = "fill_parent" android: layout_height = "400dp" /> < /LinearLayout >

    Etter vil være innholdet i res /verdier /strings.xml
    å definere to nye konstanter og minus;
    <? xml version = "1.0" encoding = "utf -8 ">? < resources > < string name = "APP_NAME" > My Application < /string > < string name = "action_settings" > Innstillinger < /string > < /ressurser >

    Følgende er innholdet mislighold av AndroidManifest.xml

    <? xml version = " 1.0 "encoding =" utf-8 "> < manifest xmlns:? android =" http://schemas.android.com/apk/res/android "pakken =" com.example.My Application "android: version = "1" android: versjon = "1.0" > < bruker-SDK android: minSdkVersion = "8" android: targetSdkVersion = "22" /> < søknad android: allowBackup = "true" android: icon = "@ teikne /ic_launcher" android: label = "@ streng /APP_NAME" android: tema = "@ stil /AppTheme" > < aktivitet android: name = "com.example.saira_000.myapplication" android: label = "@ streng /APP_NAME" > < intent-filter > < handling android: name = "android.intent.action.MAIN" /> < kategori android: name = "android.intent.category.LAUNCHER" /> < /intent-filter > < /aktivitets > < aktivitet android: name = "com.example.saira_000.myapplication.CustomActivity" < android: label = "@ streng /APP_NAME" > < intent-filter > < handling android: name = "android.intent.action.VIEW" /> < handling android: name = "com.example.saira_000.myapplication.LAUNCH" /> < kategori android: name = "android.intent.category.DEFAULT" /> < data android: Ordningen = "http" /> < /intent-filter > < /aktivitets > < /søknad > < /manifest >

    La oss prøve å kjøre ditt Min Application
    søknad. Jeg antar at du hadde laget ditt AVD
    mens du gjør oppsett miljø. For å kjøre programmet fra Android Studio, åpne en av prosjektets aktivitets filer, og klikk Kjør ikonet fra verktøylinjen. Android Studio installerer programmet på AVD og starter den, og hvis alt er bra med oppsettet og søknad, vil det vise følgende Emulator vindu −

    Nå la oss starte med første knappen "Start Browser med VIEW handling". Her har vi definert våre tilpasset aktivitet med et filter "android.intent.action.VIEW", og det er allerede en standardaktivitet mot VIEW handling definert av Android som lanserer nettleser, Så android viser følgende to alternativer å velge den aktiviteten du vil starte.

    Hvis du nå velger Browser, da Android vil lansere nettleseren og åpne example.com nettside, men hvis du velger IndentDemo alternativet da Android vil lansere CustomActivity som ikke gjør annet enn bare fange gått data og viser i en tekstvisning som følger −

    Nå gå tilbake ved å bruke tilbake-knappen og klikk på "Start Browser med LANSERING Handling" -knappen, her Android gjelder filter å velge definere aktivitet og det rett og slett starte tilpassede aktivitets
    < p> Igjen, gå tilbake å bruke tilbake-knappen og klikk på "Unntaks Tilstand" -knappen, her Android prøver å finne ut en gyldig filter for den gitte hensikt, men det betyr ikke finne en gyldig aktivitet defineres fordi denne gangen har vi brukt data som http
    stedet for http
    om vi gir en riktig handling, så Android hever et unntak og viser følgende skjermbilde −