Hjem Personlig finansiering Programmering med Java: Noen observasjoner om Android-klasser - dummies

Programmering med Java: Noen observasjoner om Android-klasser - dummies

Innholdsfortegnelse:

Video: Week 1, continued 2025

Video: Week 1, continued 2025
Anonim

Når du starter et nytt Java-prosjekt, tilbyr Android Studio å opprette en aktivitet for prosjektet ditt. Android Studio tilbyr deg flere forskjellige typer aktiviteter, for eksempel en grunnaktivitet, en tom aktivitet, en påloggingsaktivitet og så videre. Hvis du ber om en tom aktivitet, får du denne koden:

pakke com. allyourcode. a10_11;

importer android. Brukerstøtte. v7. app. AppCompatActivity;

import android. os. Bunt;

offentlig klasse MainActivity utvider AppCompatActivity {

@Override

beskyttet tomt påCreate (Bundle savedInstanceState) {

super. onCreate (savedInstanceState);

setContentView (R. Layout. Activity_main);

}

}

Koden erklærer en klasse som heter MainActivity . Dette navnet MainActivity er ikke en del av Android API-biblioteket. Det er et navn du lager når du lager et nytt Android-prosjekt. (Egentlig gjør Android Studio navnet. Du godtar navnet eller endrer det til et annet navn når du følger trinnene for å opprette et nytt prosjekt.)

Klassen MainActivity utvider en klasse som tilhører til Android SDK-bibliotek, nemlig klassen AppCompatActivity . Med andre ord er MainActivity objektet et AppCompatActivity objekt. Objektet MainActivity har alle rettigheter og ansvar som noen AppCompatActivity forekomst har. For eksempel har MainActivity en onCreate -metode, som den tilsidesetter.

MainActivity om 460 linjer med kode fra Android's AppCompatActivity klasse, som arver omtrent 1.000 linjer fra Android FragmentActivity class, som arver rundt 6, 700 linjer fra Android's Aktivitetsklasse. De arvede metoder inkluderer de som getCallingActivity , getCallingPackage , getParent , getTitle , getTitleColor , , , på, , påKeyDown , påKeyLongPress , onLowMemory , påMenuItemSelected , setTitle <, setTitleColor , startAktivitet , ferdig og mange, mange andre. Du arver all denne funksjonaliteten med to enkle ord: utvider AppCompatActivity . I terminologien til familieforhold er klassen din MainActivity en etterkommer av Android's

Aktivitet klasse. Din klasse MainActivity er en slags Aktivitet . Dette bildet, tatt direkte fra Android's online dokumentasjon, oppsummerer denne informasjonen om klassen AppCompatActivity .

Et AppCompatActivity-treet. Bokmerk siden for enkel tilgang til Android's API-biblioteksdokumentasjon. I tillegg til å være en underklasse, implementerer klassen

AppCompatActivity

en mengde grensesnitt, inkludert

AppCompatCallback grensesnittet, TaskStackBuilder grensesnittet og andre. Du trenger ikke å huske noe av dette. Hvis du noen gang trenger å vite det, kan du se det opp på Android's dokumentasjonsside. Java's superord, revisited Ordet super

står for superklassens konstruktør. Ulike kode brukte

super søkeordet på en annen måte. Ja, super har alltid noe å gjøre med en klasses foreldreklasse. Men nei, super refererer ikke alltid til foreldrenes klassens konstruktør. I en onCreate -metode, blir samtalen

super. onCreate (savedInstanceState) sender savedInstanceState til foreldreklassens onCreate -metode. Foreldreklassen er klassen AppCompatActivity . Så kalles Java AppCompatActivit y klassens onCreate -metode. Metoden AppCompatActivity klassens

onCreat e inneholder sin egen samtale 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 ikke før du kommer til klassen Aktivitet - din M

klasse over besteforeldre - at koden direkte bruker savedInstanceState -variabelen. Fra denne savedInstanceState -informasjonen, setter koden aktiviteten tilbake som det var før systemet ødela det. Casting, again Når du ringer findViewById , vet Java ikke hvilken type visning den vil finne. Metoden

findViewById

returnerer alltid et eksempel på Vis , men mange Android-klasser utvider klassen Vis . For eksempel er klassene Knapp , Tekstvisning , ImageView , CheckBox , Kronometer og RatingBar Alle utvider Android's View klasse. Hvis du skriver inn følgende kode: // IKKE GJØR DETTE! ! TextView textView; textView = findViewById (R. Id. TextView); Java lar ut en rungende, forferdelig brøl: "Hvordan tør du anta at objektet returneres ved et kall til

findViewById

refererer til en forekomst av klassen

TextView

! "(Faktisk viser Java tydelig og mekanisk en feilmelding på Inkompatible typer i Android Studios redigerer.) Narrowing betyr å forsøke å tilordne en lang verdi til en > int

verdi. En verdi på lang har 64 biter, og en verdi på int har bare 32 biter. Så forsøket på innsnevring mislykkes. I koden du finner her, er det dårlige findViewById -samtalen et annet forsøk på å gjøre innsnevring - tilordne verdien Vis returnert av en metodeanrop til en TextView -variabel.Klassen TextView er en underklasse av klassen Vis , slik at oppgaven mislykkes. beundre Java-gudene ved å legge til en casting-operatør til koden. Du forteller Java for å konvertere hva som helst som kommer fra findViewById metodeanropet til et TextView objekt.

textView = (TextView) findViewById (R.ID.textView1); Mens du skriver koden, hummer du Java og sier, "Din casting operatør viser meg at du er klar over forskjellen mellom en TextView

og en hvilken som helst gammel View . Jeg vil gjøre mitt beste for å tolke objektet

Vis som jeg finner ved kjøretid som et TextView objekt. "(Faktisk, mens du skriver koden, sier Java ingenting. Det faktum at Java ikke viser noen feilmeldinger når du bruker dette casting-tricket, er et godt tegn. Java-gjengingsfunksjonen sparer dagen!) Casting hindrer deg i å se en feilmelding mens du utvikler koden din. På den måten er støping ganske nyttig for Java. Men casting kan ikke spare deg hvis koden din inneholder kjøretidsfeil. Når du skriver inn textView = (TextView) findViewById (R. Id. TextView1); du bekrefter at navnet textView representerer en

TextView

-grensesnitt. Når appen kjører, griper Java

R. id. textView widget fra activity_main. xml fil, og alt fungerer bra. Men du kan noen ganger glemme å sjekke R. java navn på komponentene i XML-filen. En samtale til findViewById spretter overraskende ut en Button komponent når avstøpningen din forteller at Java forventer en TextView widget. Når dette skjer, støter Java på støpingsoperatøren, og appen din krasjer under kjøringen. Tilbake til tegnebrettet!

Programmering med Java: Noen observasjoner om Android-klasser - dummies

Redaktørens valg

Vis resultatene i forhold til et målområde i Excel-oversiktspanelet - dummies

Vis resultatene i forhold til et målområde i Excel-oversiktspanelet - dummies

Noen ganger trenger du målserier i Excel-oversikten og rapportene dine. I enkelte bedrifter er et mål ikke en verdi - det er en rekke verdier. Det vil si at målet er å holde seg innenfor et definert målområde. Tenk deg at du klarer en liten bedrift som selger esker med kjøtt. En del av jobben din er å ...

Slicer Tilpasninger for Slicers på Excel Dashboard - dummies

Slicer Tilpasninger for Slicers på Excel Dashboard - dummies

Hvis du skal bruke slicers på en Excel-dashbordet, bør du gjøre litt formatering for å få dine skiver til å passe til temaet og oppsettet på instrumentpanelet. Følgende diskusjon dekker noen formateringsjusteringer du kan gjøre til dine skiver. Størrelse og plassering av skiver En skiver oppfører seg som en standard Excel ...

Enkel statistikk i Excel Data Analyse - dummies

Enkel statistikk i Excel Data Analyse - dummies

Excel gir flere praktiske, brukervennlige verktøy for å analysere informasjon som du lagrer i et bord, inkludert noen raske og skitne statistiske verktøy. Se på følgende enkle bord. En enkel dagligvareliste. Et av de smaleste og raskeste verktøyene som Excel gir, er muligheten til enkelt å beregne summen, gjennomsnittet, antall, minimum og maksimum av ...

Redaktørens valg

Bruk fanen Filtre til å modifisere QuickBooks 2014 Rapporter - dummies

Bruk fanen Filtre til å modifisere QuickBooks 2014 Rapporter - dummies

Filtrene kategorien er trolig den mest interessante og en nyttig kategori som er levert av dialogboksen QuickBooks Modify Report. Filtre-fanen lar deg sette opp filtre som du kan bruke til å angi hvilken informasjon som oppsummeres i rapporten. For å bruke Filtrer-fanen velger du først feltet du vil ha ...

Bruk skjermfeltet til å modifisere QuickBooks 2012-rapporter - dummies

Bruk skjermfeltet til å modifisere QuickBooks 2012-rapporter - dummies

Hvis du klikker Tilpass rapport- QuickBooks viser dialogboksen Endre rapport, som du kan bruke til å tilpasse en rapport. Når du tilpasser en rapport, endrer du rapportens utseende, layout og informasjonen som den oppsummerer. Dialogboksen Endre rapport ser annerledes ut for ulike rapporttyper. Likevel, hvis du ser forbi ...

Slik bruker du QuickBooks for din hvite papir forretningsplan - dummies

Slik bruker du QuickBooks for din hvite papir forretningsplan - dummies

QuickBooks kan hjelpe deg skriv en hvit-papir forretningsplan. Folk skriver ofte en forretningsplan for hvitt papir når de vet at de trenger en strategisk plan, men ikke ønsker å ta de harde beslutningene som er nødvendige for en strategisk plan. Personen i denne konfronten skriver en lang hvit-papir forretningsplan for å camouflere den fraværende strategiske planen. ...

Redaktørens valg

Canon 60D elektronisk nivåfunksjon - dummies

Canon 60D elektronisk nivåfunksjon - dummies

Ikke hvert fotografi må være nivå med horisonten. Imidlertid lider mange typer bilder (landskap, bybilder og arkitektonisk fotografi) sterkt når kameraet er vippet. Den gammeldags løsningen for å utjevne kameraet ditt er å bruke et boble- eller åndnivå (funnet i fotobutikker) for å kontrollere kameraets justering med ...

Kamerainnstillingsdisplayet på et Canon EOS Rebel T3-serie Kamera-dummies

Kamerainnstillingsdisplayet på et Canon EOS Rebel T3-serie Kamera-dummies

På din Canon Rebel T3 eller T3i, kan du se en samling av tilleggsinnstillingsdata via kamerainnstillingsdisplayet. Denne skjermen er bare et informasjonsverktøy, men; Du kan ikke justere noen av de rapporterte innstillingene fra denne skjermen. For å vise skjermbildet Kamerainnstillinger på T3i, vis først innstillingsinnstillingene ...

Canon EOS 70D Kameraoppsett - dummies

Canon EOS 70D Kameraoppsett - dummies

Her er en oversikt over knappene, ringer og andre eksterne kontroller på Canon EOS 70D-kameraet ditt. Objektivet vist i de følgende figurene er Canon EF-S 18-135mm IS (bildestabiliseringsmodell) som selges med kameraet; Andre linser kan variere.