10 Manieren om fouten te voorkomen bij het programmeren van uw Android-app met Java

10 Manieren om fouten te voorkomen bij het programmeren van uw Android-app met Java - dummies

Iedereen maakt fouten. Het is een feit van het leven. Als u echter de adviezen hier opvolgt, hoeft dit geen enkel feit te zijn van uw Java-programmering.

Hoofdletters plaatsen waar ze horen

Java is een hoofdlettergevoelige taal, dus u moet echt denken aan uw p s en q s - samen met elke andere letter van het alfabet. Hier zijn enkele concepten waarmee u rekening moet houden bij het maken van Java-programma's:

  • De zoekwoorden van Java zijn allemaal volledig in kleine letters. In een Java if -instructie bijvoorbeeld, kan het woord if niet If of IF zijn.
  • Wanneer u namen uit de Application Programming Interface (API) van Android gebruikt, moet de naam van de naam overeenkomen met wat in de API wordt weergegeven.
  • De namen die u zelf verzonnen, moeten gedurende het hele programma op dezelfde manier worden geactiveerd. Als u een myAccount variabele declareert, kunt u er niet naar verwijzen als MyAccount , mijn account of Myaccount . Als u de variabelenaam op twee verschillende manieren kapitaliseert, denkt Java dat u verwijst naar twee totaal verschillende variabelen.

Een switch-statement

doorbreken Als u niet uit een switch -instructie komt, raakt u doorgevallen. Als de waarde van rol bijvoorbeeld 7 is, worden in de volgende code alle drie de woorden afgedrukt: win , doorgaan en > verliest : switch (rol) {

case 7:

textView. setText ( "win");

case 10:

TextView. setText ( "verder");

case 12:

textView. setText ( "verliezen");

}

Vergelijking van waarden met een dubbel gelijkteken

Wanneer u twee waarden vergelijkt, gebruikt u een dubbel gelijkteken. De regel

if (inputNumber == randomNumber)

is correct, maar de regel

als (inputNumber = randomNumber)

niet correct is.

Luisters toevoegen om gebeurtenissen af ​​te handelen

U wilt weten wanneer de gebruiker op een widget klikt, wanneer een animatie eindigt, of wanneer er iets anders gebeurt, dus u maakt luisteraars:

openbare klasse MainActivity breidt activiteit

uit OnClickListener, AnimationListener

{ ...

openbare inhoud onClick (View view) {

...

}

openbare inhoud onAnimationEnd (Animation animation) {

...

} < Wanneer u luisteraars maakt, moet u onthouden om de luisteraars in te stellen:

ImageView-widget = nieuwe ImageView (this);

widget.

setOnClickListener

(this); ...

AlphaAnimation-animatie = nieuwe AlphaAnimation (0, 0F, 1. 0F);

animatie.

setAnimationListener

(this); ... Als u de aanroep van

setOnClickListener

bent vergeten, gebeurt er niets wanneer u op de widget klikt.Een tweede keer klikken op de widget helpt niet. De vereiste constructors definiëren Wanneer u een constructor met parameters definieert, zoals in

public Temperature (double number)

Java maakt niet langer een standaardparameterloze constructor voor u aan. Met andere woorden, u kunt niet langer

Temperature roomTemp = new Temperature () aanroepen;

tenzij u expliciet uw eigen constructor zonder parameters

Temperatuur

definieert. Niet-statische verwijzingen herstellen Als u probeert de volgende code te compileren, krijgt u een foutmelding:

klasse WillNotWork {

String greeting = "Hallo";

static void show () {

textView. setText (groet);

}

}

U krijgt een foutmelding omdat de

show

-methode statisch is, maar -groet niet statisch is. Binnen een array blijven binnen een bereik Wanneer u een array met tien componenten declareert, hebben de componenten indexen 0 tot en met 9. Met andere woorden, als u

int guests [] = nieuw int [10];

u kunt de componenten van de array

guests

raadplegen door gasten [0] , gasten [1] , enzovoort te schrijven, helemaal tot gasten [9] . U kunt gasten [10] niet schrijven, omdat de gasten -array geen component met index 10 heeft. Anticiperen op null-aanwijzers A

NullPointerException

komt tot stand wanneer u een methode oproept voor een uitdrukking die geen "legitieme" waarde heeft. Hier is een voorbeeld: openbare klasse MainActivity breidt AppCompatActivity uit { TextView-tekstView;

@Override

beschermde ongeldig onCreate (bundel savedInstanceState) {

super. onCreate (savedInstanceState);

setContentView (r.lay-out.activiteit_hoofd);

// U vergeet de regel findViewById.

}

openbare inhoud onButtonClick (weergave weergeven) {

tekstweergave. setText ( "Hello");

}

}

In Java heeft een verwijzingstype-variabele die nergens naar verwijst de waarde

null

. In dit voorbeeld is de waarde tekstweergave van de variabele null . U kunt de setText

-methode niet roepen op de null -waarde. U kunt trouwens geen methode aanroepen met de waarde null . Wanneer Java tekstweergave probeert uit te voeren. setText ("Hallo") , de app crasht. De gebruiker ziet een toepassing die het -bericht heeft gestopt. Als u de app test met Android Studio, ziet u NullPointerException in het paneel Logcat. Als u dit soort calamiteiten wilt vermijden, moet u twee keer nadenken over elke aanroep van een methode in uw code. Als de expressie vóór de punt mogelijk null

is, voeg dan exception-handling code toe aan uw programma: public void onButtonClick (View view) { try {

textView. setText ( "Hello");

} catch (NullPointerException e) {

Toast. makeText (dit: "De app is hersteld van een fout.",

Toast. LENGTH_LONG). laten zien();

}

}

Machtigingen gebruiken

Sommige apps hebben expliciete rechten nodig. Sommige apps praten bijvoorbeeld via het internet met de servers van Twitter. Dit werkt niet, tenzij u een

-element toevoegt aan Android Manifest van de app

.xml bestand: Als u vergeet het element toe te voegen aan uw

AndroidManifest. xml bestand, kan de app niet communiceren met de servers van Twitter. De app mislukt zonder een nuttig foutbericht weer te geven. Jammer! De activiteit niet gevonden Als u een tweede activiteit voor uw app aanmaakt, moet u een nieuw

-element toevoegen in de

AndroidManifest van de app. xml file. Het element kan zo eenvoudig zijn als , maar in de meeste gevallen is het element iets gecompliceerder. Als u dit

-element niet toevoegt, kan Android de klasse

MySecondActivity niet vinden, ondanks de MySecondAcitivity. java bevindt zich in de projectmap van de app. Uw app loopt vast met een ActivityNotFoundException . En dat maakt het verschil.