Pirmoje ir antroje pamokoje sužinojote kaip sukurti pirmąją Android programą, bei svarbiausius dalykus reikalingus visiškam programos pažinimui ir išmanymui. Šiandien apžvelgsime būdus, kaip Android programoje patalpinti mygtukus.
Android OS turi įvairių mygtukų tipų (ImageButton, CompoundButton, RadioButton ir kt.), tačiau dažniausiai sutinkami ir naudojami yra Button ir ImageButton. Šiame įraše pirmiausia išmoksite patalpinti mygtuką savo programoje, o vėliau – kaip reikia priversti mygtuką atlikti tam tikrus veiksmus.
Sukuriame Android programą
Prieš pradedant darbą su mygtukais, mums reikia turėti paruoštą darbui Android programą. Tai galime padaryti, atlikę veiksmus aprašytus pirmojoje pamokoje arba parsisiuntę jau paruoštą tuščios Android programos kodą.
Talpiname mygtukus programoje
Yra du būdai talpinti įvairiausius GUI komponentus: programinis ir specialaus išdėstymo failo redagavimas. Pirmasis būnas leidžia programuotojui programiniu būdu aprašyti komponentų padėtį. Antrasis būdas – komponentai aprašomi tam skirtoje specialioje XML byloje, naudojant tam tikras žymas. Pastarasis būdas yra daug lengvesnis ir aiškesnis, nes iškart matomi rezultatai.
Norėdami pridėti mygtuką į mūsų programos langą, atidarome bylą “/res/layout/main.xml”, kurią naudoja mūsų programos “Activity”. Joje talpiname žymas, simbolizuojančias komponentą: <Button /> arba <ImageButton />. Mygtukų veikimui, išvaizdai ir vietai ekrane reikia tam tikrų parametrų:
- id – unikalus mygtuko identifikatorius
- text (tik Button tipo mygtukui) – nurodomas tekstas, esantis ant mygtuko
- layout_height ir layout_width – komponento aukštis ir plotis
- src (tik ImageButton tipo mygtukui) – nurodomas kelias iki paveikslėlio, esančio ant mygtuko
Taip atrodo mūsų “layout” byla main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center">
<Button
android:id="@+id/mygtukas1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/mygtuko_tekstas"
android:minHeight="92dp"
android:textSize="22dp"
android:onClick="mygtukoVeiksmas"></Button>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/fwd"
android:id="@+id/mygtukas_su_paveiksleliu"
android:layout_below="@+id/mygtukas1"></ImageButton>
</RelativeLayout>
Paleidę mūsų programą, mes matysime mygtukus, tačiau juos paspaudus, nieko neatsitiks. Norėdami tai pakeisti, turime aprašyti sukurtųjų mygtukų veiksmus.
Mygtukų veiksmai
Mygtuko veiksmų aprašymas turi dvi galimybes:
- Aprašyti naudojant “OnClickListener”
- Aprašyti naudojant paprastą programos metodą
Veiksmų aprašymas, naudojant paprastą programos metodą
Šis metodas šiek tiek lengvesnis nei veiksmų aprašas, naudojant “OnClickListener”. Norėdami priskirti veiksmą mygtukui, mes galime tiesiog pridėti parametrą “layout” byloje prie pasirinkto mygtuko.
android:onClick="mygtukoVeiksmas"
Naudodami šį parametrą, mes nustatome, koks metodas bus iškviestas paspaudus mygtuką. Tada mūsų “Activity” klasėje reikia sukurti public tipo metodą su vieninteliu parametru. Pavyzdžiui, po mygtuko paspaudimo norime pamatyti pranešimą, kad mygtukas paspaustas. Kodas tada atrodys taip:
public void mygtukoVeiksmas(View view){
Toast.makeText(this, "Mygtukas paspaustas!", Toast.LENGTH_SHORT).show();
}
Paspaudę mygtuką, mes matome “Toast” tipo pranešimą “Mygtukas Paspaustas”. Štai kaip jis atrodo mūsų programoje:
Veiksmų aprašymas, naudojant “OnClickListener”
Kitas būdas, leidžiantis aprašyti mygtuko veiksmus, yra realizuoti tai naudojant View.OnClickListener. Visas veiksmų aprašymas vyksta programiškai, todėl nereikia pridėti jokių parametrų “layout” byloje. Galbūt pradžioje tai atrodys daug sudėtingiau, tačiau išmokus ir žinant galimybes, šis metodas yra pats geriausias. Norėdami pasinaudoti šiuo metodu, mūsų “Activity” klasėje, onCreate() metode mes turime rasti mūsų aprašytąjį mygtuką (tai padarysime findViewById() ) ir naudojant setOnClickListener() apibūdinti veiksmus, atliekamus po paspaudimo. Pavyzdžiui, žemiau pateiktas kodas suranda mūsų aprašytą mygtuką ir realizuoja jo veiksmus.
ImageButton manoMygtukasSuPaveiksleliu = (ImageButton) findViewById(R.id.mygtukas_su_paveiksleliu);
manoMygtukasSuPaveiksleliu.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Toast.makeText(MainActivity.this, "Mygtukas su paveiksleliu paspaustas!", Toast.LENGTH_SHORT).show();
}
});
Tuo pačiu būdu galime realizuoti ir veiksmus, po ilgo mygtuko paspaudimo. Tai padarysime vietoj setOnCickListener(), naudodami setOnLongClickListener().
Štai ir išmokote naudoti mygtukus Android programoje. Kažkas nepavyko ar kilo klausimų? Rašykite komentarą ir sulauksite atsakymo. Šios ir kitų programų kodą galite rasti užsukę į http://code.google.com/p/empty-android-app/
|
|
|
|
|
Gediminas Ubartas http://www.gedzis.net || @Gedzis
Jaunas programuotojas kilęs iš Telšių, o dabar gyvenantis ir dirbantis Vilniuje. Besidomintis programavimu, Android OS. Dabar studijuoja Verslo informatikos specialybę, Mykolo Romerio Universitete. Laisvalaikį dažniausiai praleidžia krepšinio aikštelėje, būdamas su draugais arba tiesiog kurdamas įvairiausius projektus. |
| Panašūs įrašai | Kiti autoriaus įrašai | Kiti kategorijos įrašai |




2011-07-29 12:35
2011-08-01 08:05
Call setOnClickListener() and pass it your implementation of the OnClickListener.
Cia Java navarotas, ar android?
Ir ar teisingai tuomet suprantu, kad 90% viso marketo programu UI sudaryta is image mygtuku? Ar dazniau vistik ovveridinama ir pasigaminama custom komponentai?
2011-08-03 13:30
Dėl visu programų tai nežinau, tačiau nemanau, kad
2011-08-05 07:16