Vítejte na stránkách, kam si jedno individium, které se učilo/učí programovat aplikace pro Android, vkládalo/vkládá materiály, které během svého samostudia nashromáždilo. Jde povětšinou o tipy, jak něco v Androidu udělat. Články seřazené od nejnovějšího ke staršímu následují:
Debugování Android aplikací
11:01 30.04.2012
Ve zkratce:
- debugování je možné
- v manifestu si musíme jako atribut elementu application přidat atribut android:debuggable s hodnotou true
- před deployováním aplikace do marketu bychom tento parametr měli odstranit
- např. v Eclipse lze přidávat break pointy
- aplikaci v Eclipse nepouštíme přes Run as, ale před Debug as
- V Eclipse s tím souvisí hlavně view LogCat
- Když mi došlo v kódu k nějaké nečekané výjimce, tak právě přes LogCat jsem vždy došel k informacím, přes které jsem ji odhalil.
Povolení přístupu k Internetu
00:26 26.04.2012
V manifestu lze povolit přístup k internetu. Potřeba k tomu bude následující část xml manifestu:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
RadioButton
16:15 22.04.2012
Když chceme mít ve formuláři několik radio-buttonů, tak můžeme postupovat takto:
V xml definujícím prvky obrazovky použijeme element RadioGroup. Tomu dáme nějaké id. Obsahem RadioGroup může být několik elementů typu RadioButton. Každýmu dáme taky nějaké id.
Po odeslání formuláře si ve třídě získáme objekt pro naší radiogroup. To může vypadat nějak takto:
RadioGroup types=(RadioGroup)findViewById(ídéčko);
Pokud se chceme zachovat různě dle typu, použijeme např. switch na možné hodnoty:
switch (types.getCheckedRadioButtonId()) {
case jedno_z_idecek:
//akce
break;
...
Pokud chceme v xml ovlivnit to, které tlačítko bude zaškrtnuté, lze použít android:checke="true".
Instalace potřebného pro programování Android aplikací
10:16 22.04.2012
- Víceméně vše potřebné by mělo být na vývojářské stránce - http://developer.android.com/sdk/index.html. Resp.: http://developer.android.com/sdk/installing.html. Význam tohoto článku je v tom, dát si sem pár souvisejících odkazů.
- Jako IDE se tu doporučuje Eclipse. K dispozici je ale i plugin pro NetBeans.
- V návodu jsme naváděni, že člověk si musí stáhnout Android SDK - http://developer.android.com/sdk/index.html
- Do Eclipse si musíme stáhnout potřebný plugin - to jde přímo v Eclipse. Url by mohla být
https://dl-ssl.google.com/android/eclipse/. - Je potřeba si stáhnout i nějakou platformu - např. Android 2.1. Opět dokumentace od Google je podrobná. A i jiných článků i v ČJ je na Internetu už dost.
Android: Kliknutí na tlačítko
10:39 22.04.2012
Po kliknutí na tlačítko se změní text tlačítka na text, který se vyplní v inputu. Nejdůležitější kód následuje, nebo si můžete stáhnout celý Eclipse projekt v .rar.
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<EditText android:id="@+id/textik"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button android:id="@+id/submit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Odeslat" />
</LinearLayout>
KliknutiActivity.java
package org.martinsach;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class KliknutiActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b=(Button)findViewById(R.id.submit);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
EditText e=(EditText)findViewById(R.id.textik);
Button b2=(Button)findViewById(R.id.submit);
b2.setText(e.getText());
}
});
}
}
string.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Zkus na následující tlačítko kliknout.</string>
<string name="app_name">Kliknuti</string>
</resources>Aktivity
10:35 22.04.2012
Pár výpisků na téma aktivit následuje:
- aktivity jsou komponenty, které zajišťují obrazovky s kterými může uživatel interagovat
- jedna aplikace se většinou skládá z více aktivit
- jakmile se jedna aktivita nastartuje, předešlá se stopne - nová se dá na vrchol zásobníku
- LIFO - last in first out
- když je aktivita zastavována z důvodů, že jiná aktivita startuje, je o tom běžící aktivita informována
- aktivity mají několik callback metod - volány, když je systém vytváří, zastavuje, obnovuje a odstraňuje
- vytváříme podtřídu nabízené třídy Activity
- v nové aktivitě implementujeme metodu onCreate(), aby se vědělo, co se má udělat, když je aktivita vytvářena; definujeme si tu layout (setContentView())
- onPause() - zde se případně hodí uložit aktuální stav, kdyby se náhodou uživatel nevrátil zpět do aplikace
- uživatelský interface je zajištěn hierarchií viewů - každý se stará o určitý obdélníkový prostor uvnitř okna aktivity a odpovídá za uživatelské interakce
- v Androidu je k dispozici hodně viewů, které lze hned použít (např. tlačítko)
- widgets = viewy, které poskytují vizuální elementy pro obrazovky - např. tlačítka, textové fieldy apod.
- layouts - viewy odvozené od třídy ViewGroup, ve kterých lze uspořádat další viewy
- nejběžněji se layouty naplní v XML souboru
- aktivita použitá v aplikaci musí být deklarována v manifest souboru
- v elementu aktivity lze specifikovat různé intent-filtry - ty slouží pro specifikaci toho, jak může být aktivita aplikací aktivována
Android: Ahoj světe!
10:31 22.04.2012
Kód nejdůležitějších částí následuje. Nebo si můžete stáhnout celý Eclipse projekt v .rar.
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
Main.java
package org.martinsach.test1;
import android.app.Activity;
import android.os.Bundle;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
string.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Ahoj, světe</string>
<string name="app_name">Název aplikace test 1</string>
</resources>