En introduksjon til Xamarin: Part 1

An Introduksjon til Xamarin: Part 1
16
Del
7
Del
Dette Cyber ​​mandag Envato Tuts + kurs vil bli redusert til bare $ 3. Ikke gå glipp av
Dette innlegget er en del av en serie som heter An Introduction to Xamarin.An Introduksjon til Xamarin. Del 2
Fra den spede begynnelsen

Det er utrolig å tenke på at nesten ti år siden Når Mono ble offisielt lansert, ville C # utviklere har de aller fleste mobil landskapet ved sine fingertupper. Jeg husker nøyaktig hvor jeg var. Det var sommeren 2004, og jeg skulle sette den siste finpussen på en fett-klient desktop program som bruker .NET Framework 2.0.

jeg var å skape et program for å visualisere bedriftsdatasentre i Visio og automatisk genererer migreringsplaner og sjekkpunkter for å virtual sine miljøer. Det var banebrytende ting på den tiden hvis du spør meg.

Jeg prøvde å holde seg på toppen av .NET som best jeg kunne, så da jeg hørte det skulle være en åpen versjon, tenkte jeg, " ryddig". Kanskje jeg kunne kjøre programmet mitt på en Linux-maskin. Men jeg jobbet på en Microsoft butikk og fikk ikke se mye bruk i det, så jeg avvist det for en stund.

Om et år før Mono gikk live, selskapet som skapte den, Ximian ble kjøpt av Novell, og arbeidet med sine produkter fortsatte. Blant disse produktene var Mono. I sin tid under paraplyen av Novell, Mono fortsatte å bli bedre tett fulgt vekst og funksjonalitet av .NET Framework gjennom Microsoft.

I løpet av denne tiden, to svært store fremskritt i mobilen om Mono kom, Mono Hotell og Mono for Android
ble utgitt i 2009 og 2011, henholdsvis. Mye til stor overraskelse for .NET samfunnet, kan vi nå skrive mobile apps som målrettet iOS og Android-plattformene i et språk som vi ble kjent med. Dessverre, dette var ikke umiddelbart møtt med åpne armer.

Mens Android-plattformen ikke synes å ha mye problemer med dette, Apple derimot, var ikke fullt så mottakelig. I midten av 2010, oppdatert Apple vilkårene i deres iOS Developer Program som forbudt utviklere fra å skrive apps i andre valutaer enn C, C ++, og Objective-C språk, og begrenset noen form for lag mellom iOS-plattformen og iOS-applikasjoner. Anmeldelser

Dette kunne sikkert ha stavet katastrofe for Mono fremover. Heldigvis, i slutten av 2010, avslappet Apple språkrestriksjoner og fremtiden for Mono så lys ut igjen, selv om bare kort.

Som utsiktene for Mono brukere begynte å se lyst igjen, det var en annen ulempe . I begynnelsen av 2011, Attachmate kjøpte Novell og annonserte hundrevis av oppsigelser av Novell arbeidsstyrke. Blant disse oppsigelser var flere av grunnleggerne av den opprinnelige Mono rammeverk samt arkitekter og utviklere av både Monotouch og Mono for Android. Nok en gang ble vi bekymret for fremtiden for vår evne til å skape C # programmer som kjører på disse nye plattformene.

Knapt en måned etter å ha blitt permittert, Miguel de Icaza opprettet et nytt selskap kalt Xamarin og lovet å fortsette utvikling og support av Mono. Novell og Xamarin annonsert at en evigvarende lisens av Mono, Monotouch og Mono for Android vil bli innvilget, og at Xamarin ville nå offisielt overta prosjektet. Vi nok en gang hadde nøklene til riket.

Komme i gang

Om lag tre år etter etableringen av Xamarin, vi sitter igjen med noen virkelig bemerkelsesverdig verktøy. Disse verktøyene er ikke bare bemerkelsesverdig for det faktum at de tillater oss å skrive C # applikasjoner som kjører på ikke-Microsoft-plattformer, men de er også svært enkelt å komme i gang

Trinn 1:. Installasjon

For å komme i gang, du bare gå over til Xamarin nettside, registrere deg for en konto hvis du ikke allerede har en, og gå til nedlastingssiden. Med hver konto, får du en gratis 30-dagers prøveversjon av Business Edition av Xamarin, som gir deg alt du trenger.

I de siste årene, installasjonen av Xamarin har kraftig forbedret fra dagene av Monotouch og Mono for Android. Det er en helt selvstendig installasjon som vil oppdage nødvendig programvare og sine versjoner for å komme i gang, inkludert den riktige versjonen av Android SDK

Trinn 2:. Development Environments

I mitt sinn, den viktigste funksjonen av Business (og Enterprise) Edition er dens støtte for Visual Studio. Dette betyr at du kan skrive alle dine iOS og Android-applikasjoner ved hjelp av ikke bare en IDE som du er komfortabel med, men også få den ekstra fordelen av noen andre plugins eller utvidelser for Visual Studio kan du være med, Resharper for eksempel.

Jeg vet ikke om deg, men jeg sikkert få et støt av spenning når jeg åpner opp Visual Studio, velg Fil > Nytt prosjekt Hotell og stirrer rett i ansiktet av alternativene for å skape en iOS eller Android-applikasjon.

Hvis din 30-dagers gratis prøveversjon av Business Edition er utløpt etter når du leser dette, kan du bare nedgradere til Starter Edition og fortsette å spille med Xamarin. Det er imidlertid et par ulemper til Starter Edition.

  • Du er ikke lenger i stand til å bruke Visual Studio.
  • Din søknad har en størrelsesbegrensning.

    Hvis du bare bruker Starter Edition til å leke seg med Xamarin, disse restriksjonene er ingen big deal. Hvis du jobber på den neste store app, skjønt, må du bla opp for Business eller Enterprise Edition. Hver utgave kommer også med en gratis IDE, Xamarin Studio.

    Xamarin Studio er en fullverdig IDE som inkluderer mange funksjoner du også finner i Visual Studio, så du definitivt ikke trenger å føle seg kortsluttet på noen måte Hvis du velger å bruke Xamarin Studio. Jeg føler meg veldig komfortabel med å bruke det, og det er virkelig en fryd å jobbe med.

    Det fine er at løsningen og prosjektstrukturer er utbyttbare med de av Visual Studio. Dette betyr at hvis du har en lisens for en utgave av Xamarin som lar deg bruke Visual Studio, kan du arbeide på samme løsning i enten IDE. Dette gjør at cross-teamutvikling mellom utviklere som bruker enten en Windows- eller Mac-basert system. Det er ikke behov for virtualiseringsprogramvare, fordi Xamarin Studio er tilgjengelig for både Windows og OS X.

    Trinn 3: Konfigurasjon

    Når du kommer i gang med Xamarin, er det viktig å være klar over konfigurasjonsmuligheter. For å komme inn i grunnleggende konfigurasjon, velg Verktøy > Valg
    fra Visual Studio eller Xamarin Studio.

    Jeg har for tiden bare har Xamarin.Android
    installert. Hvis du også har installert Xamarin.iOS
    , vil du se flere konfigurasjonsmuligheter. Fra høyre side av alternativene dialogboksen vil du se følgende alternativer i Visual Studio.

    I Xamarin Studio, er lignende alternativer delt på tvers av SDK Steder
    , Debugger
    og Android Slektstre vise elementer i Prosjekter
    delen. La meg gå gjennom de ulike konfigurasjonsmuligheter.

    Android SDK og NDK Steder

    Som du kanskje har gjettet, er disse innstillingene brukes til å angi plasseringen av Android biter på maskinen din. Jeg vanligvis ikke finner det nødvendig å endre disse og oftest en ren installasjon av Xamarin-noen ganger med en oppdatering eller to vil laste ned og installere alle de riktige versjoner i de riktige stedene. Hvis du er en mer erfaren Android-utvikler som trenger å ha tilgang til flere versjoner og være i stand til å bytte frem og tilbake, har du den evnen.

    Bevar applikasjonsdata /cache på enheten mellom distribuerer
    < p> Dette er sannsynligvis det alternativet konfigurasjon som jeg bruker mest. Når jeg skriver et program som fungerer med lokale sandkasse data på en enhet eller i emulatoren, for eksempel filer eller en database, vil jeg til slutt i denne boksen.

    Under utplassering av en søknad til en enhet eller emulator, blir filer-alle eksisterende data inkludert database fjernet og må opprettes på nytt. I de tidlige stadier av utviklingen, da jeg ønsker å sørge for at databasen er opprettet blir, er dette greit. Etter det punktet, men jeg ønsker å jobbe med et befolket database og ikke trenger å sette disse dataene opp hver gang programmet er distribuert.

    Gi feilsøkingssymboler for delte runtime og baseklassebiblioteker (Visual Studio only)

    Under utviklingen syklus, du distribuerer din debug bygge til en enhet eller på emulator. Som standard leveres med søknaden er dine debug symboler som tillater deg å feilsøke, sette stoppunkter i din egen kode, og trinn gjennom linjene mens programmet kjører. Dette alternativet lar deg også tilgang til feilsøkings symboler i den delte Mono runtime samt baseklassebiblioteker for å gi deg mer informasjon om hva som skjer i disse områdene, så vel som din egen kode.

    Dette er bare brukes til debugging formål. En tilsvarende alternativ er funnet i Xamarin Studio. Du finner det under Debugger
    alternativet som Debug prosjektkode bare; ikke gå inn i rammeverket kode.
    Du må fjerne merket for dette alternativet for å gå inn i Mono-rammeverket.

    Andre Emulator Launch Argumenter

    Hvis du har behov for å finjustere Android emulator med flere innstillinger som du kan vanligvis satt manuelt når du kjører, lar dette alternativet deg å passere disse argumentene direkte til emulator gjennom Visual Studio eller Xamarin Studio.

    Varsle meg om oppdateringer (bare Visual Studio)
    < p> Xamarin programvare er i stadig utvikling og blir oppdatert. Det lønner seg virkelig å bo på toppen av eventuelle endringer i den versjonen du bruker, samt hva som kommer. Her er hvor du kan angi hvilke typer oppdateringer du ønsker å bli varslet om. Du vil bli bedt om å laste ned og installere nye versjoner hvis du sjekker i denne boksen.

    Jeg vanligvis bo med stabile versjoner for programmer som er planlagt for utgivelse, men jeg liker å ha en alfa eller beta å spille med. Det er en lignende alternativ i Xamarin Studio, men på et annet sted. Det kan finnes under Hjelp > Se etter oppdateringer
    . Her kan du velge Oppdater kanal
    som Stabil
    , Beta
    , eller Alpha
    , akkurat som i Visual Studio.

    Extension feilsøkingslogging (skriver monodroid.log til skrivebordet) (Visual Studio only)

    Dette alternativet gjør at enheten utplassering logging. Når dette alternativet er aktivert, dirigerer Visual Studio utgang fra loggen distribusjon til monodroid.log
    fil funnet på skrivebordet ditt. Dette alternativet er ikke tilgjengelig i Xamarin Studio, i hvert fall ikke som en konfigurerings.

    Xamarin Studio alltid skriver enhetsdistribusjons loggene, men de er litt vanskeligere å finne. I Windows kan du finne dem i \\ LOCALAPPDATA \\ XamarinStudio- {version} \\ Logs hvor VERSION
    er versjonen av Xamarin Studio du bruker. Filene er opprettet i den mappen med navnekonvensjonen av AndroidTools- {DATA} __ {TIME} hvor DATE
    er dagens dato for distribusjon og TIME
    er den faktiske tiden av distribusjon.

    Skrive Kode

    Før jeg ta opp skjønnheten av denne koden, og gutten er det vakkert, er det viktig for deg å forstå at bare fordi du kan skrive iOS og Android-programmer i C # , betyr ikke at du kan bare skrive iOS og Android-applikasjoner i C #. Den Xamarin teamet har gjort en fantastisk jobb slik at utviklere med bakgrunn i C # for å ha evne

    å lage iOS og Android-programmer. Problemet ligger i kunnskap. La meg forklare dette nærmere.

    Du kan ha C # kunnskapen du trenger, men med mindre du har syslet i iOS eller Android utvikling i det siste, har du ikke plattformen kunnskap. For å gjøre Xamarin brukbare til alle nivåer av iOS og Android-utviklere, har Xamarin teamet kartlagt språkkonstruksjoner og klassestrukturer fra Objective-C for iOS og Java for Android i C #.

    Så hva betyr det ? Det betyr at du minst må ha en grunnleggende forståelse av iOS og Android programmering modell og SDK for å kunne dra nytte av Xamarin. Det betyr at AVFoundation klasse i Objective-C er den MonoTouch.AVFoundation klasse i C #. Aktivitets klasse i Java er Android.App.Activity klasse i C #.

    Hvis du ikke har noen erfaring med iOS eller Android, så ikke la mangel på kunnskap avskrekke deg fra å bruke Xamarin. Du trenger ikke å bruke måneder, dager, eller timer på iOS Dev Center eller Android Developer nettstedet. Poenget er at å bli kjent med den plattformen du utvikler for er mer enn verdt tiden din hvis du har ambisjoner om å skape et kvalitetsprodukt.

    Mitt forslag er å gå rett til Xamarin Developer Center og få raskt i gang. Du vil finne dokumentasjon, eksempelprogrammer, tutorials, videoer og API referanser. Alt etter å komme i gang er rett og slett forske hvordan du skal gjøre visse oppgaver. Når du får en god hånd på APIene og utvikling flyt, kan du gå tilbake til iOS og Android ressurser for å få en mer inngående kjennskap til plattformene.

    La oss lage et program

    Nå som du har de nødvendige verktøy lastet ned og installert, la oss ta dem for et spill. Å følge med, kan du bruke enten Visual Studio eller Xamarin Studio, fordi jeg vil være fokus på koden, ikke IDE. For denne opplæringen, vil jeg bruke Visual Studio 2 013 kjører på Windows, men du er fri til å bruke enten IDE på Windows eller Xamarin Studio på OS X. Vi vil lage en enkel Android applikasjon som vil lese dagens nyhetsfeed fra Xamarin og vi kaller det XamFeed
    .

    Lag A Xamarin.Android Prosjekt

    Komme som du ville gjort med alle andre C # applikasjon ved å opprette et nytt prosjekt /løsning og navngi den XamFeed.
    Typiske navnekonvensjoner for et program som dette ville føye .Android
    til slutten av navnet. Dette er for å skille navnet på dette programmet fra noen annen plattform bestemt versjon du kan lage senere (for eksempel .iOS
    , .Mac
    , .WindowsPhone
    , etc) .

    Dette vil være et veldig enkelt program, så vi vil holde navnet enkle så vel. Du kan velge hvilken som helst av Android maler du ønsker, Android Application, Android Honeycomb Application, eller Android Ice Cream Sandwich Applikasjons. Dette bare sette foten versjon av Android som vår søknad vil være rettet. Jeg vil bruke den grunnleggende Android Application
    mal.

    Skriv noen kode

    Solution Explorer
    , åpner MainActivity klasse, som vil være den viktigste inngangspunkt for vår søknad. Jeg liker å endre navn på denne aktiviteten å bedre representere det formålet de vil tjene, så gå videre og endre navnet til FeedActivity.

    Hvis du ikke er kjent med aktiviteter, tenk på en aktivitet som en skjerm eller visning i din Android søknad. Hver skjerm du trenger i din søknad vil ha en tilsvarende klasse som arver fra aktivitets base klassen.

    I FeedActivity klassen, har du muligheten til å overstyre en rekke metoder som er gitt for deg ut av boksen . Det eneste som vi er opptatt av i øyeblikket er den OnCreate metode som vil bli kalt når våre skjermen er opprettet og tilgjengelig for brukeren.

    Det første vi vil gjøre er å opprette en ny klasse som representerer fôret. Du kan selvsagt utvide på dette, men alt vi trenger for nå er tittelen, pubDate, Skaperen, og Link til elementets innhold
    public class RssItem {public string Tittel {få.; sett; } Public string pubDate {får; sett; } Public string Creator {får; sett; } Public string Link {får; sett; }}

    Vi kan nå endre gjennomføringen av OnCreate metode innen vår MainActivity klasse for å få data fra Xamarin feed. Bytt ut OnCreate gjennomføring med følgende: product: [Activity (Label = "XamFeed", MainLauncher = true, ikon = "@ teikne /ikon")] public class FeedActivity: ListActivity {private RssItem [] _items; beskyttet async ride void OnCreate (Bundle bundle) {base.OnCreate (bundle); hjelp (var klient = new HttpClient ()) {var xmlFeed = avvente client.GetStringAsync ("http://blog.xamarin.com/feed/"); Var doc = XDocument.Parse (xmlFeed); XNamespace dc = "http://purl.org/dc/elements/1.1/"; _items = (fra element i doc.Descendants ("element") velge ny RssItem {Tittel = item.Element ("title"). Verdi, pubDate = item.Element ("pubDate"). Verdi, Creator = item.Element ( . dc + "skaperen") verdi, Link = item.Element ("link") Verdi}) ToArray ()..; ListAdapter = new FeedAdapter (dette, _items); }} Beskyttet ride void OnListItemClick (Listview l, Utsikt v, int posisjon, lang id) {base.OnListItemClick (l, v, posisjon, id); Var andre = new Intent (dette, typeof (WebActivity)); second.PutExtra ("link", _items [posisjon] .link); StartActivity (andre); }}

    La oss gå gjennom denne kodebiten linje for linje for å se hva som skjer.
    [Activity (Label = "XamFeed", MainLauncher = true, ikon = "@ teikne /ikon")]

    ActivityAttribute som dekorerer FeedActivity klassen er den mekanismen som Xamarin.Android
    bruker å la målenheten eller emulator vet at dette er en aktivitet (eller skjerm) som er tilgjengelig i programmet. Dette er nødvendig for all aktivitet klasser innen søknaden
    private RssItem [] _items;.

    Vi kommer til å lagre alle informasjonselementer som vi trekker fra Xamarin nettstedet i en variabel for å hindre oss i å stadig lage HTTP-forespørsler . Det kan være lurt å håndtere dette forskjellig avhengig av om du ønsker å oppdatere denne skjermen senere med nytt innhold. I vår enkle søknad, vil vi ikke gjøre dette.
    Beskyttet async styre void OnCreate (Bundle bundle)

    Neste, vi overstyre OnCreate metode som er eksponert gjennom aktivitet base klassen i vår FeedActivity klasse. Denne metoden kalles hver gang denne aktivitet blir instansiert av. Som du ser, kan vi også bruke den nye C # 5.0 async /venter funksjonen for å gjøre denne metoden asynkron
    base.OnCreate (bundle);.

    Sørg for å ringe base.OnCreate metoden på basen aktivitet klassen . Dette vil sikre at enhver behandling base klassen gjør under OnCreate metoden vil fortsette å kjøre.
    Bruker (var klient = new HttpClient ())

    For å hente RSS-data fra Xamarin hjemmeside, vi kommer til å . bruke HttpClient klassen som det gir en rekke praktiske asynkrone metoder for å hente data over HTTP
    Var xmlFeed = avvente client.GetStringAsync ("http://blog.xamarin.com/feed/"); Var doc = XDocument .Parse (xmlFeed);

    Vi deretter påberope GetStringAsync metoden på HttpClient klassen til å hente fôr data og analysere den inn i en XDocument objekt for å gjøre noen Linq2XML
    magi
    XNamespace dc = ". http://purl.org/dc/elements/1.1/";_items = (fra element i doc.Descendants ("element") velge ny RssItem {Tittel = item.Element ("title"). Verdi, pubDate = element . .Element ("pubDate") verdi, Creator = item.Element (dc + "skaperen") verdi, Link = item.Element ("link") Verdi}) ToArray ();...

    For å riktig hente elementer fra den resulterende XDocument objekt, må vi opprette en forekomst av XNamespace klasse som representerer noen av skikken formatering brukes i Xamarin RSS feed. Vi kan da kjøre en LINQ spørring mot XDocument å trekke alle elementer ut og lage nye forekomster av RssItem klassen basert på elementegenskaper
    ListAdapter = new FeedAdapter (dette, _items);.

    Til slutt bruker vi en tilpasset adapter for å befolke Listview av FeedActivity, som er definert i Main.axml dokumentet i Resources /Layout mappe. Tenk på adaptere i Android som en mekanisme for å gi noen tilpasset formatering av elementer eller widgets i brukergrensesnittet. Alle komponenter brukergrensesnitt som bruker adaptere, for eksempel en Listview, bruk standardadaptere hvis du ikke angir et eksplisitt, men du kan alltid erstatte dem med dine egne.

    Den siste biten i puslespillet for FeedActivity klasse er å overstyre OnListItemClick metode, slik at vi kan åpne opp en ny aktivitet som viser oss det faktiske innholdet i de enkelte fôr elementer som vi berører
    base.OnListItemClick (l, v, posisjon, id);.

    Igjen, vi kaller base klassen metoden for å være sikker på at all den vanlige behandlingen blir utført
    Div andre = new Intent (dette, typeof (WebActivity));. second.PutExtra ("link", _items [posisjon] .link); StartActivity (andre);

    Vi følger nå Android design mønster for bestått data til en ny aktivitet. Dette vil bli veldig kjent for deg som du oppretter flere programmer som involverer flere skjermer. Vi skaper en ny Intent objekt, som er den Android metode for sending av data til en ny aktivitet. Vi passerer det to objekter som representerer sammenheng med hvor samtalen har opprinnelse, dette, og den type objekt til hvor det går.

    Når vi har den nye Intent objekt, vi sette Anmeldelser ting, typisk strenger, inn i det og gi det videre. I dette tilfellet bruker vi PutExtra metode for å legge en nøkkel /verdi-par til Intent, og begynne overgangsprosessen til WebActivity skjermen med StartActivity metoden.

    Basert på koden involvert i oppretting av FeedActivity skjermen, har vi nå behov for å opprette en FeedAdapter klasse som fylles og formaterer RssItem data inn i vårt Listview og en WebActivity klasse for å representere den neste skjermen. La oss starte med den FeedAdapter klassen
    public class FeedAdapter. BaseAdapter < RssItem > {private RssItem [] _items; privat aktivitet _context; offentlig FeedAdapter (Activity sammenheng RssItem [] stk): base () {_context = sammenheng; _items = elementer; } Public override RssItem dette [int posisjon] {få {return _items [posisjon]; }} Public override int Count {få {return _items.Count (); }} Public override lang GetItemId (int posisjon) {return stilling; } Public override Vis GetView (int posisjon, Utsikt convertView, ViewGroup forelder) {var view = convertView; if (vis == null) {view = _context.LayoutInflater.Inflate (Android.Resource.Layout.SimpleListItem2, null); } View.FindViewById < TextView > (Android.Resource.Id.Text1) .Text = _items [posisjon] .Title; view.FindViewById < TextView > (Android.Resource.Id.Text2) .Text = string.Format ("{0} på {1}", _items [posisjon] .Creator, _items [posisjon] .PubDate); returnere view; }}

    Yikes. Det er mye kode. Det er egentlig ganske enkelt skjønt. Vi trenger å overstyre fire metoder /eiendommer på base klassen, BaseAdapter. I vårt tilfelle er det generiske parameter kommer til å bli vår RssItem klasse. De tre første er ganske selvforklarende.

  • dette [int posisjon] returnerer en RssItem i en gitt posisjon i rekken.
  • Greve returnerer antall RssItem gjenstander i rekken.

    GetItemId returnerer Id av en RssItem ved en gitt posisjon, posisjonen i vårt eksempel.

    Den siste, og litt mer komplisert, er overstyring av GetView metoden. Denne metoden blir en forekomst av Listview innenfor vår aktivitet, og blåse det som en SimpleListItem2, som er en type listitem syn innenfor Android som gjør at to rader med tekst i en enkelt gjenstand. Vi satt på første rad av tekst til RssItem.Title eiendom og andre rad med tekst til en sammensetning av RssItem.Creator eiendom og RssItem.PubDate eiendommen.

    Med adapter sett, kan vi fokusere . på den andre skjermen på vår søknad, WebActivity
    [Activity (Label = "WebActivity")] public class WebActivity: Aktivitet {beskyttet ride void OnCreate (Bundle bundle) {base.OnCreate (bundle); SetContentView (Resource.Layout.WebActivity); WebView view = FindViewById < WebView > (Resource.Id.DetailView); view.LoadUrl (Intent.GetStringExtra ("link")); }}

    Strukturen er lik den ene av de FeedActivity klassen. Vi er nok en gang bruker ActivityAttribute å dekorere WebActivity klassen. Det er bare tre litt ulike linjer i denne metoden at vi ikke støter før
    SetContentView (Resource.Layout.WebActivity);.

    SetContentView metoden er en fin medhjelper metode som skal kartlegge vår C # Activity klasse til spesifisert layout fil. I dette eksemplet skal vi referere til WebActivity.axml filen.
    WebView view = FindViewById<WebView>(Resource.Id.DetailView);view.LoadUrl(Intent.GetStringExtra("link"));

    The to siste linjene er spesifikke for WebView kontroll i vår layout. Vi bruker FindViewById metode for å få en henvisning til den angitte WebView kontroll og kaller LoadUrl metoden og passerer det dataene som ble sendt til denne aktiviteten, via en Intent, fra FeedActivity klassen.

    De siste bitene av puslespillet er layoutfiler som definerer plassering og navngiving av kontroller på de enkelte skjermer. Den første er den Main.axml filen i Resources /Layout-mappen i din løsning. Bare erstatte innholdet med følgende:?
    ≪ 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 "> < Listview android: id = "+ id /TutsFeedListView" android: layout_width = "fill_parent" android: layout_height = "fill_parent" /> < /LinearLayout >

    Deretter oppretter du en ny Android layout fil i Resources /Layout mappe, name it WebActivity.axml, og erstatte innholdet med følgende:?
    < 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 "> < WebView android: layout_width = "fill_parent" android: layout_height = "fill_parent" android: id = "+ id /DetailView" /> < /LinearLayout >
    bygge og distribuere

    Når du 've fullført skape alle bitene av dette programmet, bør du være i stand til å bygge applikasjonen og distribuere den til Android Emulator. Byggeprosessen er akkurat som alle andre program du har laget i Visual Studio. Du kan feilsøke din søknad ved å trykke F5 eller kjøre programmet ved hjelp av Ctrl-F5. Den eneste forskjellen er at du har en rekke alternativer for distribusjon du kan konfigurere. For denne opplæringen, er vi interessert i å kjøre applikasjonen i Android Emulator, men hvis du har en fysisk enhet du kan kjøre programmet på der også.

    I Xamarin.Android verktøylinjen, har du flere ulike alternativer. Du har en rullegardinmeny som lar deg angi Android versjon emulatoren skal kjøre. For denne søknaden, har jeg valgt å kjøre på den nyeste versjonen av Android, Android_API_19 eller KitKat på i skrivende stund.

    Hvis du ikke har den nyeste versjonen av SDK som jeg gjør her, kan du åpne Android SDK Manager og laste ned den versjonen du ønsker å kjøre programmet på. Hvis du åpner Android SDK Manager, kan du velge mellom en mengde ulike Android SDK versjoner og noen ekstra verktøy.

    Du har også muligheten til å konfigurere de tilgjengelige emulatorer eller lage dine egne. Dette gjøres gjennom Android Emulator sjef der du kan opprette, redigere, kopiere og slette emulatorer.

    Ved å klikke på Ny
    eller Rediger
    knappen til høyre , blir du presentert med en dialogboks der du kan konfigurere emulator.

    Når alt er konfigurert slik du liker, er det tid for sannhetens øyeblikk, kjører Android applikasjon. Trykk F5 og vente på emulator å lansere, noe som kan ta litt tid. Det er derfor en god ide å la emulator åpen, slik at du ikke trenger å vente på det å starte opp hver gang du distribuere din søknad. Når søknaden er å kjøre i emulator, bør du se noe som dette.

    Ditt syn kan variere litt, avhengig av hvordan du har konfigurert emulator. Peke eller klikke på en av titlene bør ta deg til en web-visning i programmet som ligner på det nedenfor.

    Konklusjon

    Det du har det. Du har nå opprettet en Android-applikasjon som bruker Visual Studio, C #, og litt hjelp fra dine venner på Xamarin.

    Herfra kan du ta en rekke tiltak. Du kan skreddersy dette programmet for å gjøre det helt din egen eller la den være som den er og imponere vennene dine. Uansett, har du tatt et stort skritt inn i verden av ikke-Microsoft mobile utvikling ved hjelp av Microsoft-verktøy. Det er ganske kult i seg selv hvis du spør meg.

    Neste gang skal vi takle verden av iOS utvikling ved hjelp Xamarin.iOS, som er en svært lik prosess med bare noen få forskjeller. Spent? Jeg vet jeg er. Inntil neste gang og glad koding

    Neste trinn:. Se Course

    Hvis du ønsker å lære mer om Xamarin, så sjekk ut vår kurs Bygge Multi-Platform Apps med C # i Xamarin .

    I kurset vil du lære hvordan du oppretter en kryssplattform søknad fra en enkelt kodebasen som vil kjøre på tre distinkt forskjellige plattformer: iOS, Android og Windows Phone 8. Tror det kan ikke være gjort? På bare en liten stund vil du gjøre det selv. La oss få til å fungere.

    Du kan ta med en gang med en helt gratis
    14 dagers prøveversjon av en Tuts + abonnement. Ta en titt på våre abonnement alternativer å komme i gang, eller, hvis du er like interessert i dette kurset, kan du kjøpe det individuelt for $ 15! Her er en forhåndsvisning for å komme i gang:



    Next Page:No