Első Androidos programom - Egyszerű műveleteket használó számológép elkészítése Android Developer Tools (ADT) segítségével
Alap számológép alkalmazás Android programfejlesztés
Tompos Szabolcs
Tartalom 1.
Ismertető, áttekintés ................................................................................................................................... 2
2.
Projekt létrehozása ...................................................................................................................................... 2
3.
Projekt alapok, GUI ...................................................................................................................................... 4
4.
Mindennek a lelke, a programozás ............................................................................................................. 6
5.
Utolsó simítások, *.apk................................................................................................................................ 8
Forráskód és a kész program az alábbi LINK-en található, valamint a verseny hivatalos oldalán: https://mega.co.nz/#!0NhGXKSL!8ppphlgyzow2o2J1bPvcey37mYX8B43iFPDIExVZXRY
1. Ismertető, áttekintés Az SDK segítségével, androidos alkalmazásokat, játékokat fejlesztünk, tesztelhetünk. Fő célja a Windows és Android alkalmazások közötti különbségek elmosása. A weben is elérhető Eclipse ADT telepítésével használható is és fejleszthetünk (a Java telepítése után).
2. Projekt létrehozása Az Eclipse elindítása után létrehozzuk az új projektet, a File >> New >> Android Application Project alatt.
1. ábra Példa az ADT környezet File menüjére
A projektnek a létrehozás során, természetesen tetszőleges nevet lehet megadni, én a „simple.calculator”-t adtam. FONTOS! Projekt nevének megadásánál ne használjunk szóközt! Engedélyezi, de a projektben később gondot okozhat. Ajánlott a projekteknek, az alábbi beállításokat alkalmazni: 1. Itt lehet megadni a programnak, a legkisebb Android rendszerrel való kompatibilitását. 2. Az előzőhöz hasonlóan, ugyan azt a funkciót tölti be, azzal a különbséggel, hogy itt a legmagasabb verziót adjuk meg 3. A programozás során ennek a verziónak a funkcióit használhatjuk.
1. 3. 2.
2. ábra Új Androidos alkalmazás létrehozása
A következő lehetőségnél nem kell változtatni, egyszerűen csak lépjünk tovább.
3. ábra Kezdőikon kiválasztása
Itt az alkalmazás ikonját tallózhatjuk ki (3.ábra). Nem szükséges itt beállítani, ezt később is megtehetjük, de egyszerűbb megoldás létrehozáskor kiválasztani. A következő lehetőségnél válasszuk a „Blanc activity”-t, majd tovább.
4. ábra Az Activity nevének megadása
A „MainActivity”t és „activity_main”-t, célszerű alapértelmezetten hagyni és nem átírni. Későbbiekben kell rájuk hivatkozni, ha átírod, az összezavarhat. Főleg, ha más forrásból vágsz ki forráskódot. Finish gombbal hozzuk létre az új projektet.
3. Projekt alapok, GUI
5. ábra A kinézetért és a programért felelős két fájl
Az 5. ábrán megjelölt fájlokra lesz szükségünk elsősorban (ill. elsőként a res/values/strings.xml). A szövegek megadásának nem a legegyszerűbb, viszont későbbiekben a leginkább zökkenőmentes megoldását mutatom meg. (egyszerűbb megoldás, egy oldallal lejjebb) 1. a már előbb említett úton nyissuk meg a strings.xml fájlt. 2. kattintsunk, az Add gombra 3. válasszuk ki a „String”-et 4. OK gomb (folyt. a 7. ábrán) 5. a Name mezőbe a string azonosítóját adjuk meg (calculator_strg) FONTOS! nem tartalmazhat szóközt és más speciális karaktert (# á é ő / + stb) 6. a Value* helyre pedig a kiírandó szöveget (bármilyen karakter lehet).
6. ábra Példa grafikai elemkhez rendelhető változó megadására
7. ábra Példa grafikai elemkhez rendelhető változó megadására
Megtehetjük azt is, hogy új string helyett, a „hello_world” nevűt írjuk át tetszőlegesre. Ezt a string létrehozást használhatjuk bárhova (text, button…).
8. ábra Példa grafikai elemkhez rendelhető változó megadására
Kattintsunk az adott elemre, amelynek a szövegét szeretnénk megváltoztatni, majd az Edit Text opciót, itt válasszuk ki a tetszőleges stringet. Egyszerűbb megoldás, ha a 8. ábra lépése után csak egyszerűen beírjuk a karaktert(eket) IDE. 9. ábra Példa grafikai elemkhez rendelhető változó megadására
Készítsünk hasonló kinézettel egy alapot. A button a Form Widgets menü, a Text Fields-ben, pedig megtalálható a Number. 2 number, 5 button, és egy TextView az eredménnyel (nincs kiírandó karakter alapból, ezért nem látszik, de ott van alul, hidd el ).
10. ábra Példa grafikai elemkhez rendelhető változó megadására
4. Mindennek a lelke, a programozás Válasszuk a MainActivity.java fület. Ha mindent jól csináltunk valami hasonlót látunk a jobb felső sarokban (11. ábra).
11. ábra Példa az Outline fülre
Jöjjön a gyönyörűséges java nyelv (2-3 példa és meg lehet szokni). Ha nem írtad át a Buttonok, EditText és TextView azonosítókat az alábbit kell beírnod. FONTOS! Nem az elem nevére gondolok, pl. Button-t átírod =re, hanem az elemek azonosítóját nem írtad át. A public class és a protected void közé kell megadni, hogy az adott elemed a grafikus felületen, milyen funkciót töltsön be. Pl. a button1 elemed Button, azaz gombként funkcionáljon. Ha hibát jelez ( ), nem kell megijedni, valószínű, hogy csak importálni kell. Ezt megteheted, a CTRL+SHIFT+O (o betű) gombok lenyomásával. public class MainActivity extends Activity { Button button1; Button button2; Button button3; Button button4; Button button5; EditText editText1; EditText editText2; TextView textView1; TextView textView2; @Override protected void onCreate(Bundle savedInstanceState) {
Ezzel csak azt adtad meg, hogy mi legyen az elemek funkciója, most hozzá is kell rendelned egy helyi változóhoz. A programozás alatt nem az elemek eredeti azonosítóját fogod használni, hanem a helyi változót, helyi azonosítót. Ezeket célszerű ugyan annak elnevezni, hogy ne legyen keveredés. Ezt a „protected void onCreate” alatt kell megadni. Így kell hozzárendelni (sorrendben:button,edittext,textview): button1 = (Button)findViewById(R.id.button1); button1.setOnClickListener(this); editText1 = (EditText)findViewById(R.id.editText1); textView1 = (TextView)findViewById(R.id.textView1);
Ezt természetesem minden elemre másoljuk át (button 2, button3…, textView2… ).
Jól dolgoztál akkor is, ha aláhúzza a setOnClickListener-t. Ennek az-az oka, hogy egy, a telefonon való érintésért érzékelő fontos függvény még hiányzik, és a következővel kell kiegészíteni a public class –t. public class MainActivity extends Activity helyett: public class MainActivity extends Activity implements OnClickListener {
Ha valaki megnyom egy adott pontot a képernyőn, és ott van valamilyen aktív elem (button, spinner…) akkor ez a függvény elindítja a leprogramozott feladatot. A következő függvényt kell hozzáadni public void onClick(View v) {
Ebbe a függvénybe if-ekkel, vagy switch-el kell az elemek azonosítóit megadni. Lásd: public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.button1: { ... } } }
Megadjuk a változókat, amibe tároljuk a beírt számokat, egy ideiglenes (amivel megjegyezzük az utoljára leütött műveletet) és egy, amivel kiíratjuk az eredményt. Ezt a public class MainActivity extends Activity implements OnClickListener függvénybe, a protected void onCreate elé kell deklarálni. int memory=0; double szam1, szam2, eredmeny = 0;
Visszatérünk a public void onClick(View v) függvényhez, és a következőképpen két switch segítségével megoldjuk (természetesen számos másik megoldás is létezik). public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.button1: //ugyan így button 2, 3, 4-re is { memory=1; //button2-nél 2 értéket, 3-nál 3, 4-nél 4. break; } case R.id.button5: { szam1 = Double.parseDouble(editText1.getText().toString()); szam2 = Double.parseDouble(editText2.getText().toString());
I.
II.
switch (memory) { case 1:eredmeny = szam1 + szam2; break; case 2:eredmeny = szam1 - szam2; break; case 3:eredmeny = szam1 * szam2; break; case 4:eredmeny = szam1 / szam2; } textView1.setText(String.valueOf(eredmeny));
III.
} }
}
Az előző parancssorban az első switch-ben a memory-t egyenlővé tesszük 1-4 számig, ami a +, -, *, / operátorok helyett használjuk. I. II. III.
memory változónak adunk a lenyomott gomb alapján egy számot (pl. + az 1-es) az editText-be beírt értékéket átkonvertáljuk double-be, majd egyenlővé tesszük a szam 1 és a szam 2 változóval. Kiíratjuk az eredmeny-t a textView1-re.
5. Utolsó simítások, *.apk Mentés után, a Windows >> az elkészült appot.
menü alatt lehet a virtuális géppel futtatni
FONTOS! Ha egyéb hibák fordulnak elő, annak több oka is lehet. Érdemes azért megnézni, hogy a MainActivity.java fájlba (amibe programozol), legfelül az import elemek között van-e hibás. Ha van, akkor nyugodtan kitörölhetjük. Ezeket a program feleslegesen is beimportálhatja. A telepítő fájlt a C:\Users\****\simple.calculator\bin\simple.calculator.apk. Ezt kell a telefonra másolni és ott telepíteni. Elképzelhető, hogy nem fogod látni a fájlt. Akkor rejtett, tedd láthatóvá és meg is van.