Gyakran ismételt kérdések Online Android szakkör (DKRMG)

Gomb és kattintás

Layout szerkesztővel helyezd el a gombot a kívánt helyre
Java kódban készíts egy új függvényt a kattintás kezelésére

            
Layout szerkesztőben a gombot kijelölve állítsd be a gombod onClick tulajdonságát az új függvényre.

Button Java kódból

Hozzál létre egy változót az Activity elején. Például ha egy gombra akarsz hivatkozni:
Button gomb1;
Keresd meg a komponensedet az id tulajdonsága alapján, majd rendeld hozzá a változódhoz. Például ha a gombunk id tulajdonsága button1:
gomb1 = findViewByID(R.id.button1);
Innentől nyugodtan használhatod a változód összes belső függvényét. Például megváltoztathatod a szövegét:
gomb1.setText("Az új szöveg");

Java típusok

típus mi is ez... érték pl. megjegyzés
int leggyakoribb egész szám -42 minimum -2147483648, maximum 2147483647
byte kicsi egész szám 36 minimum -128, maximum 127
long nagyon nagy egész szám 3000000000L
float tört/lebegőpontos szám 0.12345f Például az érzékelők float tömbökat használnak
double tört/lebegőpontos számok, pontosabb 0.111222333444
char egy karakter 'G'
boolean igaz/hamis változók true vagy false Például a feltételek is ilyen típusúak
Ez a lista nem teljes. Körülnézhetsz itt is egy kicsit:

Toast (üzenet)

Toast.makeText(this, "Ez a szöveg fog megjelenni", Toast.LENGTH_LONG).show();

Rezgő motor

A manifeszt fájlban engedélyt kell kérnünk a rendszertől a rezgő motor használatához

<uses-permission android:name="android.permission.VIBRATE" />

Hozzunk létre egy Vibrator típusú, rezgoMotor nevű változót.

Vibrator rezgoMotor;

Adjunk értéket a rezgoMotor változónak (pl. az onCreate függvényben)

rezgoMotor = (Vibrator) getSystemService(VIBRATOR_SERVICE);

rezegtessük a telefont tetszőleges ideig (az időt ezredmásodpercekben adhatjuk meg)

rezgoMotor.vibrate(1000);

Activity életciklus


            

Elágazások (if)


if (feltétel) {

  // csinálj valamit ha igaz

}
                

if (feltétel) {

  // csinálj valamit ha igaz

} else {

  // egyébként csináld ezt

}
                

Képek mozgatása

A kep változó elforgatásához (ha annak típusa ImageView

kep.setRotation(30); // forgatás 30 fokkal

A kep változó áthelyezéséhez (ha annak típusa ImageView


kep.setX(0); // vizszintes
kep.setY(0); // fuggoleges            
            

Ezek a függvények csak az Android API 11-es és annál magasabb verziójában található. A leckék során öregebb telefonokhoz javasoltuk ennek segéd segédosztálynak a használatát. Töltsd le a fájlt, és használd az ImageViewHelper.setImageViewPosition és ImageViewHelper.setImageViewRotation függvényeket.

Activity megnyitása

Az AboutActivity megnyitásához hozzunk létre egy Intent típusú változót, majd indítsuk el a startActivity függvénnyel.


Intent intent = new Intent(this, AboutActivity.class);
startActivity(intent);

Listák használata

Helyezz el egy ListView elemet a layout szerkesztővel

Hozz létre egy ListView típusú változót, és adj neki értéket az id tulajdonsága alapján.
lista = findViewByID(R.id.lista);

Jelenítsük meg egy String tömb (String[]) vagy lista (ArrayList<String>) elemeit egy adapter segítségével.


ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, szavak);
lista.setAdapter(adapter);

Érzékelők használata

Szenzor manager változó deklarálása az osztály elején
SensorManager sensorManager;
Szenzor manager megkeresése és hozzárendelése a változóhoz (onCreate függvényben)
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
Felkészülés az üzenetek fogadására az Activity kódban:
implements SensorEventListener
új függvények:

@Override
public void onSensorChanged(SensorEvent sensorEvent) {

}

@Override
public void onAccuracyChanged(Sensor sensor, int i) {

}
                
Fel- és leiratkozás. Pl. közelségérzékelő

@Override
protected void onResume() {
  super.onResume();
  Sensor kozelseg = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
  sensorManager.registerListener(this, or, SensorManager.SENSOR_DELAY_UI);
}
                

@Override
protected void onPause() {
  super.onPause();
  manager.unregisterListener(this);
}
                

Érzékelő típusok

Érzékelő Sensor.KONSTANS
Közelségérzékelő (5. lecke) TYPE_PROXIMITY
Telefon helyzetének érzékelése (6. lecke) TYPE_ORIENTATION
Gyorsulásmérő TYPE_ACCELEROMETER
Hőmérséklet TYPE_TEMPERATURE vagy TYPE_AMBIENT_TEMPERATURE
Gravitációs erő TYPE_GRAVITY
Giroszkóp TYPE_GYROSCOPE
Mágneses erőtér TYPE_MAGNETIC_FIELD
Mágneses erőtér TYPE_MAGNETIC_FIELD
Légnyomás (hPa) TYPE_PRESSURE
Relatív páratartalom TYPE_RELATIVE_HUMIDITY
Nem biztos, hogy a te telefonodban ezek az érzékelők valóban elérhetőek! Ráadásul ez a lista nem is teljes. Körülnézhetsz itt is egy kicsit:

Új projekt

Először zárjuk be a meglévő projektünket. Majd az indulóképernyőn válasszuk a Start a new Android Studio project lehetőséget.
A programnak adjunk valami ékezetes betűket nem tartalmazó nevet (pl. Uzenofal. A Domain mezőnél pedig használjunk egy egyedi azonosítót. Pl. dgy.a02.android.dkrmg.hu
A minimum SDK mezőnél a 19-es verzió legyen kijelölve attól függetlenül, hogy milyen telefonra fejlesztünk.
Adjunk a fő Activitynek valami nevet. Pl. MainActivity.
Nyissuk meg a build.gradle (app) fájlt!
keressük meg a minSdkVersion 21 sort és írjuk át a számot a telefonunktól függően. Pl. Android 2.3.3-nál 10-re.

Saját képek

Keresd meg a Windows fájlkezelővel az app\src\main\res mappát a projekteden belül. (Ezt úgy is megteheted, hogy az Android Studioban a res mappára rákattintasz jobb gombbal, majd kiválasztod a Show in Explorer menüpontot)
Ha még nincsen, akkor készíts a res mappában egy új mappát drawable néven
Helyezd el a képet a drawable mappába
Mostantól kezdve a fájl nevével pl. R.drawable.ball tudsz hivatkozni rá (pl. megjeleníteni)
Amikor saját képet másolsz be a projektbe, vigyázz, hogy a fájl neve csak az angol abc kisbetűit és a _ karaktert tartalmazhatja. Nagybetűk és ékezetek nem megengedettek!