Innehållsförteckning:
- Lägg till stora bokstäver där de hör hemma.
- Bryt ut av ett omkopplingsutlåtande
- Jämför värden med dubbelt lika tecken
- Lägg till lyssnare för att hantera händelser
- Definiera de nödvändiga konstruktörerna
- Fixa icke-statiska referenser
- Håll dig inom gränserna i en matris
- Förutse nollpekare
- Använd behörigheter
- Aktiviteten hittades inte
Video: ZEITGEIST: MOVING FORWARD | OFFICIAL RELEASE | 2011 2024
Här är 10 snabba påminnelser för att undvika enkla fel när du programmerar Android-appar med Java koda. Att skriva egna Java-program blir mycket enklare och mjukare när du kör igenom denna checklista.
Lägg till stora bokstäver där de hör hemma.
Java är ett skiftlägeskänsligt språk, så du måste verkligen tänka på din P s och Q s - tillsammans med alla andra bokstäver av alfabetet. Här är några koncept att tänka på när du skapar Java-program:
-
Java-sökord är helt små bokstäver. I ett Java-uttalande kan ordet om inte vara Om eller IF.
-
När du använder namn från Java Application Programming Interface (API) måste namnen matcha vad som visas i API: n.
-
Du måste också försäkra dig om att de namn du gör upp dig aktiveras på samma sätt under hela programmet. Om du deklarerar en variabel myAccount kan du inte referera till den som MyAccount, myaccount eller Myaccount. Om du aktiverar variabelnamnet två olika sätt anser Java att du refererar till två helt olika variabler.
Bryt ut av ett omkopplingsutlåtande
Om du inte bryter ut från ett omkopplingsmeddelande får du genombrott. Om rullevärdet är 7, skriver följande kod alla tre ord - vinn, fortsätt och förlora:
switch (roll) {case 7: System. ut. println ("vinna"); fall 10: system. ut. println ("fortsätta"); fall 12: system. ut. println ("lose");}
Jämför värden med dubbelt lika tecken
När du jämför två värden med varandra använder du ett dubbel lika tecken. Linjen
om (inputNumber == randomNumber)
är korrekt, men raden
om (inputNumber = randomNumber)
är inte korrekt.
Lägg till lyssnare för att hantera händelser
Du vill veta när användaren klickar på en widget, när en animering slutar eller när något annat händer, så att du skapar lyssnare:
allmän klass MainActivity utökar aktivitet redskap OnClickListener, AnimationListener {… public void onClick (Visa bild) {…} public void onAnimationEnd (Animation animation) {…}
När du skapar lyssnare måste du komma ihåg att ställa in lyssnare:
ImageView widget = ny ImageView (detta); widget. setOnClickListener (detta); … AlphaAnimation animation = ny AlphaAnimation (0, 0F, 1. 0F); animation. setAnimationListener (detta); …
Om du glömmer samtalet till setOnClickListener händer inget när du klickar på widgeten. Att klicka på widgeten hårdare en andra gång hjälper inte.
Definiera de nödvändiga konstruktörerna
När du definierar en konstruktör med parametrar, skapar du inte längre en standardparameterlösare för dig som i
allmän temperatur (dubbelnummer)
. Med andra ord kan du inte ringa
Temperatur roomTemp = Ny temperatur ();
om du inte uttryckligen definierar din egen parameterlösa temperaturkonstruktor.
Fixa icke-statiska referenser
Om du försöker kompilera följande kod får du ett felmeddelande:
klass WillNotWork {String greeting = "Hello"; statisk statisk tomt huvud (String args []) {System. ut. println (hälsning);}}
Du får ett felmeddelande eftersom huvudmenyn är statisk, men hälsning är inte statisk.
Håll dig inom gränserna i en matris
När du deklarerar en matris med tio komponenter har komponenterna index 0 till 9. Med andra ord, om du förklarar
int gäster [] = new int [10];
du kan hänvisa till gästerens array komponenter genom att skriva gäster [0], gäster [1] och så vidare helt upp till gästerna [9]. Du kan inte skriva gäster [10], eftersom gästerna har ingen komponent med index 10.
Förutse nollpekare
Dessa exempel är inte benägna att kasta NullPointerException, men i verklig Java-programmering se det undantaget hela tiden. En NullPointerException kommer när du ringer en metod på ett uttryck som inte har ett "legitimt" värde. Här är ett billigt exempel:
public class ThrowNullPointerException {public static void main (String [] args) {String myString = null; display (myString);} statisk tomgångsvisning (String aString) {om (! aString. innehåller ("konfidentiell")) {System. ut. println (aString);}}}
Visningsmetoden skriver endast ut en rad tecken om den här strängen inte innehåller ordet konfidentiellt . Problemet är att myString-variabeln (och därmed aString-parametern) inte refererar till en sträng av något slag - inte ens till den tomma strängen (").
När datorn når samtalet till aString. innehåller, ser datorn efter en innehållsmetod som tillhör null. Men noll är ingenting. Nollvärdet har inga metoder. Så du får en stor NullPointerException, och programmet kommer att krascha runt dig.
För att undvika denna typ av katastrof, tänk två gånger om något metodsamtal i din kod. Om uttrycket före pricken eventuellt kan vara null, lägg till undantagshanteringskod i ditt program:
försök {om (! AString. Innehåller ("konfidentiellt")) {System. ut. println (aString);}} fånga (NullPointerException e) {System. ut. println ("Strängen är null.");}
Använd behörigheter
Vissa appar kräver uttryckliga behörigheter. Till exempel kan en app prata med Twitters servrar via Internet. Det här fungerar inte om du inte lägger till ett element i appens AndroidManifest. xml-fil:
Om du glömmer att lägga till elementet i din AndroidManifest. xml-fil kan appen inte kommunicera med Twitters servrar. Appen misslyckas utan att visa ett användbart felmeddelande. Synd!
Aktiviteten hittades inte
Om du skapar en andra aktivitet för din app måste du lägga till ett nytt element i appens AndroidManifest.xml-fil. En Android-app kan till exempel ha två aktiviteter: MainActivity och MyListActivity.
Eclipse skapar automatiskt en Om du inte lägger till det här elementet, kan Android inte hitta klassen MyListActivity, även om MyListAcitivity. java-filen finns i appens Eclipse-projektkatalog. Din app kraschar med en ActivityNotFoundException. Och det gör hela skillnaden.