Hjem Personlig finansiering Programmering med Java: Nogle observationer om Android's Classes - dummies

Programmering med Java: Nogle observationer om Android's Classes - dummies

Indholdsfortegnelse:

Video: ZEITGEIST: MOVING FORWARD | OFFICIAL RELEASE | 2011 2024

Video: ZEITGEIST: MOVING FORWARD | OFFICIAL RELEASE | 2011 2024
Anonim

Når du starter et nyt Java-projekt, tilbyder Android Studio at oprette en aktivitet til dit projekt. Android Studio tilbyder dig flere forskellige former for aktiviteter, såsom en grundlæggende aktivitet, en tom aktivitet, en loginaktivitet osv. Hvis du beder om en tom aktivitet, får du denne kode:

pakke com. allyourcode. a10_11;

importer android. support. v7. app. AppCompatActivity;

import android. OS. Bundt;

offentlig klasse MainActivity udvider AppCompatActivity {

@Override

beskyttet tomrum påCreate (Bundle savedInstanceState) {

super. onCreate (savedInstanceState);

setContentView (R. Layout. Activity_main);

}

}

Koden erklærer en klasse ved navn MainActivity . Dette navn MainActivity er ikke en del af Android API-biblioteket. Det er et navn, du laver, når du opretter et nyt Android-projekt. (Faktisk opretter Android Studio navnet. Du accepterer navnet eller ændrer det til et andet navn, når du følger trinene for at oprette et nyt projekt.)

Klassen MainActivity udvider en klasse, der tilhører til Android SDK bibliotek, nemlig AppCompatActivity klassen. Med andre ord er MainActivity -objektet et AppCompatActivity objekt. Objektet MainActivity har alle rettigheder og ansvar, som enhver AppCompatActivity forekomst har. For eksempel har MainActivity en onCreate metode, som den tilsidesætter.

MainActivity arvet omkring 460 linjer kode fra Android's AppCompatActivity klasse, som arver omkring 1.000 linjer fra Android's FragmentActivity klasse, som arver omkring 6, 700 linjer fra Android's Aktivitetsklasse. De arvede metoder omfatter dem som getCallingActivity , getCallingPackage , getParent , getTitle , getTitleColor , getWindow , , påKeyDown , onKeyLongPress , onLowMemory , onMenuItemSelected , setTitle <, setTitleColor , startAktivitet , finish og mange, mange andre. Du arver alle denne funktionalitet med to enkle ord: udvider AppCompatActivity . I terminologien af ​​familiemæssige forhold er din MainActivity -klasse en efterkommer af Android's

Aktivitet klasse. Din klasse MainActivity er en slags Aktivitet . Dette billede, taget direkte fra Android's online dokumentation, opsummerer disse oplysninger om klassen AppCompatActivity .

Et AppCompatActivity-stamtræ. Bogmærker siden for nem adgang til Android's API-biblioteksdokumentation. Ud over at være en underklasse implementerer klassen

AppCompatActivity

en flok grænseflader, herunder

AppCompatCallback interface, TaskStackBuilder interface og andre. Du behøver ikke at huske noget herom. Hvis du nogensinde har brug for at kende det, kan du se det på Android's dokumentationsside. Java's superord, revisited Ordet super

står for superclassens konstruktør. Forskellige kode brugte

super nøgleordet på forskellige måder. Ja, super har altid noget at gøre med en klasses forældreklasse. Men nej, super refererer ikke altid til forældersklassens konstruktør. I en onCreate metode kaldes opkaldet

super. onCreate (savedInstanceState) sender savedInstanceState til moderklassens onCreate metode. Forældren klassen er klassen AppCompatActivity . Så Java kalder AppCompatActivit y klassens onCreate metode. AppCompatActivity klassens

onCreat e metode indeholder sit eget opkald til super. onCreate (savedInstanceState) . Klassen AppCompatActivity klassen er klassen FragmentActivity . Så Java overgår savedInstanceState til FragmentActivity klassens onCreate metode. Og så videre. Det er først, før du kommer til klassen Aktivitet - din M

klasse over bedsteforældre - at koden direkte bruger savedInstanceState variablen. Fra denne savedInstanceState information sætter koden aktiviteten tilbage som det var før systemet ødelagde det. Casting, igen Når du ringer til findViewById , ved Java ikke, hvilken slags visning den finder. Metoden

findViewById

returnerer altid et Vis eksempel, men mange Android-klasser forlænger klassen Vis . For eksempel er klasserne Button , TextView , ImageView , CheckBox , Chronometer og RatingBar alle udvider Android's View klasse. Hvis du skriver følgende kode: // GØR DET IKKE! ! TextView textView; textView = findViewById (R. Id. TextView); Java udløser et rungende, gnidende brøl: "Hvordan tør du antage, at objektet returneres af et opkald til

findViewById

henviser til en forekomst af klassen

TextView

! "(Faktisk viser Java stille og mekanisk en fejlmeddelelse Inkompatible typer i Android Studio's editor.) Narrowing betyder at forsøge at tildele en lang værdi til en > int

værdi. En værdi på lang har 64 bit, og en værdi på int har kun 32 bit. Så forsøget på indsnævring fejler. I den kode, du finder her, er det dårlige findViewById -opkald et andet forsøg på at gøre indsnævring - tildele værdien Vis returneret af et metodeopkald til en TextView -variabel.Klassen TextView er en underklasse af klassen Vis , så opgaven mislykkes miserably. forkæle Java-guderne ved at tilføje en casting operator til koden. Du fortæller Java om at konvertere, hvad der kommer ud af findViewById metodeopkaldet til et TextView objekt.

textView = (TextView) findViewById (R. Id. TextView1); Mens du skriver koden, humør Java dig og siger, "Din casting operatør viser mig at du er opmærksom på forskellen mellem en TextView

og enhver gammel Vis . Jeg vil gøre mit bedste for at fortolke det

Vis objekt, som jeg finder ved kørsel som et TextView objekt. "(Faktisk, når du skriver koden, siger Java ingenting. Det faktum, at Java ikke viser nogen fejlmeddelelser, når du bruger dette casting-trick er et godt tegn. Java's støbningsfunktion sparer dagen!) Casting forhindrer dig i at se en fejlmeddelelse, mens du udvikler din kode. På den måde er støbning en ganske nyttig funktion af Java. Men casting kan ikke gemme dig, hvis din kode indeholder runtime fejl. Når du skriver textView = (TextView) findViewById (R. Id. TextView1); du verificerer, at navnet textView repræsenterer en

TextView

widget. Når appen kører, griber Java

R. id. textView widget fra activity_main. xml fil, og alt fungerer fint. Men du kan undertiden glemme at tjekke din R. java navne mod komponenterne i XML-filen. Et opkald til findViewById springer overraskende ud en Button komponent, når dit casting fortæller Java at forvente en TextView widget. Når dette sker, kvæler Java på casting operatøren, og din app går ned i løbet af løbet. Tilbage til tegnebrættet!

Programmering med Java: Nogle observationer om Android's Classes - dummies

Valg af editor

Fuld redigeringsfunktion i Photoshop Elements 10 - dummies

Fuld redigeringsfunktion i Photoshop Elements 10 - dummies

Fuld fotoredigeringsfunktion tilbyder bundter af værktøjer, som du kan bruge at redigere dine billeder, fra korrektionsværktøjer til fastsættelse af farve og klarhed til filtre, lag og meget mere for at ændre eksisterende fotos eller skabe helt originale billeder fra bunden. Men alle disse værktøjer gør også Komplet fotoredigeringstilstand kompleks. Du kan flytte ind i ...

Generelle blandingsformer i Photoshop Elements - dummies

Generelle blandingsformer i Photoshop Elements - dummies

Elementer spænder over 25 blandingstilstande. Blend modes påvirker hvordan farver interagerer mellem lag og også hvordan farver interagerer, når du anvender maling på et lag. Ikke alene gør blandingstilstande interessante effekter, men du kan også nemt anvende, redigere eller fjerne blandingsfunktioner uden at røre dine billedpixel. De forskellige blandingstilstande ...

Geometriske formindstillinger i Photoshop Elements - dummies

Geometriske formindstillinger i Photoshop Elements - dummies

Geometriindstillinger hjælpe med at definere, hvordan dine figurer ser ud. Klik på nedpegepilen i værktøjsindstillingerne i Elements for at få adgang til de geometriske indstillinger, der beskrives i det følgende. Rektangulære og afrundede rektangel geometriske indstillinger Her er geometriske indstillinger for rektangel og afrundede rektangelformer: Ubegrænset: Giver dig mulighed for at få fri tøj til at tegne en ...

Valg af editor

Sådan bygger du tabeller i HTML5 - dummies

Sådan bygger du tabeller i HTML5 - dummies

Sommetider indeholder din webside data bedst fremlagt i et bord . Du kan bruge HTML5's komplette bordsystem til at oprette tabeller som den i dette eksempel: Den grundlæggende struktur i et bord i HTML-format er rimeligt let at forstå; Tjek koden, der oprettede tabellen i eksemplet:

Hvordan man ændrer gentagne baggrunde på CSS3-steder - dummier

Hvordan man ændrer gentagne baggrunde på CSS3-steder - dummier

Der er situationer, hvor man kun vil en enkelt kopi af et baggrundsbillede på dit CSS3-websted. Det kan være, at billedet du har brugt er noget, der ikke gentager sig godt eller er stort nok til, at du virkelig ikke vil have det gentaget. Følgende procedure viser en teknik, du kan bruge til at fortælle ...

Hvordan man opbygger en webside skabelon fra scratch-dummies

Hvordan man opbygger en webside skabelon fra scratch-dummies

Standardværktøjet på tværs af digitalt agenturer og interne afdelinger til opbygning af website grafik er Adobe Photoshop. Selvom fyrværkeri er optimeret og målrettet til at producere web-grafiske kildefiler, er det bare ikke fanget, sandsynligvis på grund af den massive genoplæringsindsats ville det medføre, at hele afdelinger gør omskifteren. At oprette et nyt ...

Valg af editor

Sådan godkendes medlemmer til din LinkedIn Group - dummier

Sådan godkendes medlemmer til din LinkedIn Group - dummier

Som flere og flere mennesker finder ud af din ny LinkedIn-gruppe, og som medlemmer begynder at deltage, kan du opleve, at nogle af de personer, der har klikket på linket for at deltage, ikke er på din forhåndsgodkendte liste. Måske er de mennesker, du ikke har forstået var på LinkedIn, eller du var ikke klar over, at de var gyldige grupper ...

Hvordan man tilføjer billeder til kroppen i din LinkedIn-profil til Visual Social Marketing - dummies

Hvordan man tilføjer billeder til kroppen i din LinkedIn-profil til Visual Social Marketing - dummies

Ud over et profilbillede giver LinkedIn brugere mulighed for at forbedre de visuelle sociale markedsføringselementer i deres profiler ved at tilføje billeder til deres profilprofil. Du kan tilføje billeder til ethvert afsnit i din LinkedIn-profil. Tilføjelse af billeder til din profil kan hjælpe dig med at fortælle din historie visuelt og ...

Sådan tilføjer du en virksomhedsside til LinkedIn - dummies

Sådan tilføjer du en virksomhedsside til LinkedIn - dummies

, Når du har opfyldt kravene til oprettelse en virksomhedsside på LinkedIn, er det tid til at komme i gang ved at tilføje selskabets side til Linkedins system. For at oprette din virksomhedsside skal du blot følge disse trin: