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 2025

Video: ZEITGEIST: MOVING FORWARD | OFFICIAL RELEASE | 2011 2025
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

Hvordan man skriver en check for en fremragende bill i QuickBooks Online - dummies

Hvordan man skriver en check for en fremragende bill i QuickBooks Online - dummies

Du kan Brug QuickBooks Online (QBO) Check vinduet til at skrive en check for at betale et faktura, du tidligere indtastede - noget, du ikke kan gøre i QuickBooks desktop produkt. Brug ikke Check-transaktionen, hvis du planlægger at betale flere regninger. Hvis du vælger en betalingsmodtager, for hvem der foreligger en udestående faktura, QBO ...

Sådan afskrives fakturaer med QuickBooks Online Accountant - dummies

Sådan afskrives fakturaer med QuickBooks Online Accountant - dummies

Vælger skrivefakturaer fra revisionsværktøjerne menuen i QBOA viser siden Skriv ud fakturaer, som giver dig mulighed for at se fakturaer, du måske vil afskrive, og derefter skrive dem til en konto efter eget valg. Øverst på siden indstiller du filtre for at få vist de fakturaer, du vil have ...

Importrevisorens ændringer til QuickBooks 2012 Datafil - dummies

Importrevisorens ændringer til QuickBooks 2012 Datafil - dummies

Din klient importerer de ændringer, som du ' har lavet i revisorens kopi af QuickBooks 2012-datafilen i hendes arbejdskopi af datafilen. For at gøre dette vælger klienten filen Arkiv → Revisorens Kopi → Klientaktiviteter → Kommandoen Import Revisorens Ændringer. QuickBooks viser dialogboksen Importer regnskabsførerens ændringer. For at bruge importkontoens ændringer ...

Valg af editor

Brug Flash med Nature Photography - dummies

Brug Flash med Nature Photography - dummies

Som regel afhænger du af naturlig belysning til naturfotografering. Du kan dog bruge flash-flash eller en ekstra flash-enhed til at øge naturlig belysning. On-flash-kamera De fleste digitale kameraer leveres med en flash på kameraet. Blitzenheden springer op, når det er nødvendigt. Du kan også aktivere flash på kameraet, når du skal tilføje en ...

Brug tredjeparts rå software til HDR fotografi - dummies

Brug tredjeparts rå software til HDR fotografi - dummies

Du kan købe eller downloade et væld af Råredigerere og konvertere fra tredjepart, der hjælper dig med at lave billeder med høj dynamisk rækkevidde. Hvis du er utilfreds med din nuværende software og vil prøve noget nyt, skal du hænde på en eller flere af de programmer, der er angivet i tabellen. Rå redaktører fra tredjepart Navn URL Platform (er) Freeware? ...

Brug dekorative accenter i mad stil og madfotografi - dummies

Brug dekorative accenter i mad stil og madfotografi - dummies

Når fødevaren alene ikke skaber Det drama eller den intrigue, du vil have i din fotografering med dekorative accenter - af farve, form eller tekstur - kan give dine billeder den ekstra effekt, du leder efter. Accenter er forbedringer af fødevarematerialet, og selvom de tjener formålet med at ophæve maden, er de ...

Valg af editor

Sådan finder du formatering i Word 2007 - dummies

Sådan finder du formatering i Word 2007 - dummies

Du kan bruge kommandoen Find til at skure dit Word 2007-dokument til formatering af oplysninger. Hvis du f.eks. Kun vil finde de forekomster af ordet, der ligger i fed skrift, kan du gøre det. Dette eksempel søger efter teksten gåseæg med en skriftstørrelse på 24 point i en ...

Hvordan man finder tekst i Word 2016 - dummies

Hvordan man finder tekst i Word 2016 - dummies

Ikke gider med båndet! For at finde tekst i dit Word 2016-dokument, tryk Ctrl + F, den mindeværdige tastaturgenvej til kommandoen Find. Du ser navigationsruden, svarende til hvad der vises her. Navigationsruden. Skriv den tekst, du vil lokalisere, i feltet Søg dokument. Når du skriver forekomster af teksten ...

Hvordan man finder stilarter i Word 2016 - dummies

Hvordan man finder stilarter i Word 2016 - dummies

Stilarter bor på Word 2016 Home-fanen navngivet Styles-gruppe, som vist her. Hvad du ser på båndet er Style Gallery, som kan udvides til en fuld menu med stilvalg. Hvor Word-stilarter lurer. Klik på dialogboksen launcher i det nederste højre hjørne af Styles-gruppen ...