Indholdsfortegnelse:
- Sæt store bogstaver, hvor de tilhører
- Udelukkelse af en omstillingserklæring
- Når du sammenligner to værdier, bruger du et dobbelt lige tegn. Linjen
- Du vil gerne vide, hvornår brugeren klikker på en widget, når en animation slutter, eller når der sker noget andet, så du opretter lyttere:
- NullPointerException
- element til appens
- element i appens
Video: Awesome iPhone Apps with Objective-C by Zack Chauvin 2025
Alle gør fejl. Det er en kendsgerning i livet. Men hvis du holder opmærksom på rådene her, behøver det ikke at være en kendsgerning af din Java-programmering.
Sæt store bogstaver, hvor de tilhører
Java er et sagerfølsomt sprog, så du skal virkelig huske din p s og q s - sammen med alle andre bogstaver af alfabetet. Her er nogle begreber, der skal tages i betragtning, når du opretter Java-programmer:
- Java's søgeord er helt små bogstaver. For eksempel, i en Java
hvis
erklæringen, kan ordet hvis ikke være Hvis eller IF. - Når du bruger navne fra Android's Application Programming Interface (API), skal navnet på navnene svare til det, der vises i API'en.
- De navne, du selv udgør, skal aktiveres på samme måde i hele programmet. Hvis du erklærer en
myAccount
-variabel, kan du ikke referere til det somMyAccount
,myaccount
ellerMyaccount
. Hvis du aktiverer variablenavnet på to forskellige måder, mener Java, at du henviser til to helt forskellige variabler.
Udelukkelse af en omstillingserklæring
Hvis du ikke bryder ud af en
switch
erklæringen, får du gennemgang. Hvis værdien af
roll
er
7
, udskriver følgende kode alle tre ord -
sejr
,
fortsæt
og > tab
:
switch (roll) {
sag 7:
textView. setText ("win");
sag 10:
sag 12:
textvisning. setText ("miste");
}
Sammenligning af værdier med et dobbelt lige tegn
Når du sammenligner to værdier, bruger du et dobbelt lige tegn. Linjen
hvis (inputNumber == randomNumber)
er korrekt, men linjen
hvis (inputNumber = randomNumber)
ikke er korrekt.
Tilføjelse af lyttere til at håndtere begivenheder
Du vil gerne vide, hvornår brugeren klikker på en widget, når en animation slutter, eller når der sker noget andet, så du opretter lyttere:
Public Class MainActivity udvider Aktivitet
redskaber OnClickListener, AnimationListener
{ …
Offentlig ugyldig påKlik (Se visning) {
…
}
Offentlig ugyldig på AnimationEnd (Animation animation) {
…
} < Når du opretter lyttere, skal du huske at indstille lytterne:
ImageView widget = ny ImageView (dette);
widget.
setOnClickListener
(dette);
animation.
setAnimationListener
(dette); … Hvis du glemmer opkaldet til
setOnClickListener
, sker der ikke noget, når du klikker på widgeten.Hvis du klikker på widgeten hårdere en anden gang, hjælper det ikke.
Definerer de krævede konstruktorer
Når du definerer en konstruktor med parametre, som i
offentlig temperatur (dobbelt antal)
Java opretter ikke længere en standard parameterløs konstruktør til dig. Med andre ord kan du ikke ringe
Temperatur roomTemp = Ny temperatur ();
medmindre du udtrykkeligt definerer din egen parameterfri
temperatur
konstruktør.
Løsning af ikke-statiske referencer
Hvis du forsøger at kompilere følgende kode, får du en fejlmeddelelse:
klasse WillNotWork {
String hilsen = "Hej";
statisk tomrumsvisning () {
textvisning. setText (hilsen);
}
}
Du får en fejlmeddelelse, fordi metoden
Vis
er statisk, men
hilsen
er ikke statisk.
Ophold inden for grænser i en matrix
Når du erklærer en matrix med ti komponenter, har komponenterne indekser 0 til 9. Med andre ord, hvis du erklærer
int gæster [] = new int [10];
Du kan henvise til
gæsterne
arrayets komponenter ved at skrive
gæster [0]
,
gæster [1]
og så videre helt op til
gæster [9]
. Du kan ikke skrive
gæster [10]
, fordi menuen
gæster
ikke har nogen komponent med indeks 10.
Forvente null pointers
A
NullPointerException
kommer ved, når du kalder en metode på et udtryk, der ikke har nogen "legitim" værdi. Her er et eksempel:
Public Class MainActivity udvider AppCompatActivity {
TextView textView;
@Override
beskyttet ugyldigt onCreate (Bundle savedInstanceState) {
super. onCreate (savedInstanceState);
setContentView (R. Layout. Activity_main);
// Du glemmer findViewById-linjen.
}
Offentlig ugyldig påButtonClick (View view) {
textView. setText ("Hello");
}
}
I Java er en variabel af referencetype, der ikke peger på noget, værdien
null
. Så i dette eksempel er værdien
textView
-variablen
null
.
Du kan ikke kalde metoden
setText
på værdien
null
. For den sags skyld kan du ikke kalde nogen metode på værdien
null
. Når Java forsøger at udføre
textView. setText ("Hello")
, appen går ned. Brugeren ser en
Applikation er stoppet
besked. Hvis du tester appen ved hjælp af Android Studio, ser du NullPointerException i Logcat-ruden.
For at undgå denne form for ulykke skal du tænke to gange om enhver metodeopkald i din kode. Hvis udtrykket før prikken muligvis er
null, skal du tilføje undtagelseshåndteringskode til dit program:
Offentlig ugyldig påButtonClick (View view) {
prøv {
textView. setText ("Hello");
} fangst (NullPointerException e) {
Toast. makeText (dette, "Appen er genoprettet fra en fejl.",
Toast. LENGTH_LONG). at vise();
}
}
Brug af tilladelser
Nogle apps kræver eksplicitte tilladelser. For eksempel taler nogle apps til kvidens servere over internettet. Dette virker ikke, medmindre du føjer et
element til appens
AndroidManifest.xml
file:
Hvis du glemmer at tilføje elementet
til din
AndroidManifest. xml
-fil, kan appen ikke kommunikere med kvidens servere. Appen fejler uden at vise en nyttig fejlmeddelelse. Det var ærgerligt!
Aktiviteten ikke fundet
Hvis du opretter en anden aktivitet til din app, skal du tilføje et nyt
element i appens
AndroidManifest. xml
fil. Elementet kan være så enkelt som
, men i de fleste tilfælde er elementet lidt mere kompliceret.
Hvis du ikke føjer dette
-element, kan Android ikke finde klassen
MySecondActivity
, selvom
MySecondAcitivity. java
filen findes i appens projektmappe. Din app går i stykker med en
ActivityNotFoundException
.
Og det gør hele forskellen.