Skip to main content

Programujeme pro Android (Ukázka, strana 99)

Page 1

pouze dva stavy, např. „Chcete odeslat email?”. Pokud uživatel pole zaškrtne, email bude odeslán, pokud ne, k žádnému odeslání nedojde. Pro detekci stavu zaškrtávacího políčka existují dvě možnosti. První možnost představuje registrace objektu posluchače, ke kterému se budou hlásit změny objektu (OnCheckedChangeListener), nebo zde existuje možnost, jež je obdobná jako u tlačítka, tedy nadefinování jména metody, která bude volána při kliknutí na zaškrtávací políčko. Vytvořme si nyní příklad, jenž se bude dotazovat uživatele, zda chce či nechce odeslat email, a jeho rozhodnutí zobrazí. Metodu, která bude volána při kliknutí na políčko, si nadefinujeme v XML souboru. XML soubor s definicí zaškrtávacího pole a popisku: <?xml version="1.0" encoding="utf–8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/ android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <CheckBox android:id="@+id/checkBox1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Chcete odeslat email?" android:onClick="UkazStav" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" /> </LinearLayout> Všimněme si, že námi nadefinované zaškrtávací pole obsahuje atribut android:onClick s hodnotou UkazStav, jež reprezentuje metodu, která bude po kliknutí vykonána. Její tvar může být následující: public void UkazStav(View ch){ CheckBox MyCheckBox = (CheckBox) findViewById(R.id.checkBox1); TextView MyTextView = (TextView) findViewById(R.id.textView1); if(MyCheckBox.isChecked()) MyTextView.setText("Email bude odeslán."); else MyTextView.setText("Email nebude odeslán."); }

7.4.1 Metody třídy CheckBox Pro zjištění stavu zaškrtávacího pole, popř. jeho nastavení, se používají následující metody: isChecked() – definuje, zda je pole zaškrtnuté (zda je jeho hodnota true).

setChecked() – zaškrtne, popř. odškrtne pole. Nastavení se provádí pomocí parametru, který je typu boolean. toggle() – zaškrtne, popř. odškrtne pole. Metoda žádný parametr neobsahuje, stav pole se nastaví inverzně od aktuálního stavu.

98  Programujeme pro Android

Ukázka elektronické knihy, UID: KOS194999


Obrázek 7.4: Příklad použití zaškrtávacího pole

7.5 Přepínače Přepínače, reprezentující třídu RadioButton, jsou obdoba zaškrtávacích polí. Mohou se nacházet také ve dvou stavech a navíc je možné je seskupovat do jednoho celku, jenž je reprezentován třídou RadioGroup. Seskupení s sebou nese možnost aktivovat v jednu chvíli jen jeden přepínač. Vzhled přepínačů je možné nastavit stejnými parametry jako například vzhled popisků, tlačítek, popřípadě zaškrtávacích polí, jelikož třída RadioButton je nepřímo odvozena od třídy TextView. Nyní si vytvořme příklad, jenž zobrazí tři přepínače, které budou vsazeny do instance třídy RadioGroup. Přepínače budou reprezentovat objednávaný sortiment v restauraci. XML soubor s definicí přepínačů: <?xml version="1.0" encoding="utf–8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/ android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Objednávka:" /> <RadioGroup android:id="@+id/radioGroup1" android:layout_width="wrap_content" android:layout_height="wrap_content" > <RadioButton android:id="@+id/radio0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Pizza salámová" />

Využití standardních vizuálních komponent  99

Ukázka elektronické knihy, UID: KOS194999


<RadioButton android:id="@+id/radio1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Pizza sýrová" /> <RadioButton android:id="@+id/radio2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Pizza klobásová" /> </RadioGroup> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="Objednavka" android:text="Objednat" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="" /> </LinearLayout> XML rozvržení obsahuje avizované tři přepínače, tlačítko pro objednání sortimentu a popisek, do kterého bude zapsán výsledek objednávky. Tlačítko obsahuje definici metody Objednavka (atribut android:onClick), která samotné objednání provede. Její tvar může být následující: public void Objednavka(View v){ RadioButton RB1 = (RadioButton) findViewById(R.id.radio0); RadioButton RB2 = (RadioButton) findViewById(R.id.radio1); RadioButton RB3 = (RadioButton) findViewById(R.id.radio2); TextView objednavka = (TextView) findViewById(R.id.textView2); String RB1_pizza = RB1.getText().toString(); String RB2_pizza = RB2.getText().toString(); String RB3_pizza = RB3.getText().toString(); if(RB1.isChecked()) objednavka.setText("Objednána bude " + RB1_pizza + "."); else if(RB2.isChecked()) objednavka.setText("Objednána bude " + RB2_pizza + "."); else if(RB3.isChecked()) objednavka.setText("Objednána bude " + RB3_pizza + "."); else objednavka.setText("Objednávka nebude uskutečněna."); }

100  Programujeme pro Android

Ukázka elektronické knihy, UID: KOS194999


Turn static files into dynamic content formats.

Create a flipbook
Programujeme pro Android (Ukázka, strana 99) by Kosmas-CZ - Issuu