05

Další prvky grafického rozhraní

V této kapitole si ukážeme další běžně používané prvky grafického rozhraní aplikací pro Android. Výčet samozřejmě nebude úplný, použití dalších prvků ponecháme čtenáři k samostudiu.


Vyskakovací hlášení (Toast)

Pokud chceme uživatele informovat o proběhlých událostech, ale myslíme si, že tato informace není pro uživatele příliš důležitá, můžeme použít vyskakovací hlášení. Toto hlášení se objeví v okénku u spodního okraje obrazovky, je částečně průhledné a po chvíli zase zmizí.


K zobrazení vyskakovacího hlášení použijeme třídu Toast.

  1. Novou instanci vyrobíme voláním třídní metody
    makeText(context, text, delkaZobrazeni).
    Kontext obvykle odpovídá aktivitě, v rámci které hlášení vypisujeme, text je odkaz na textový řetěz s textem, jako délku zobrazení použijeme jednu z konstant Toast.LENGTH_LONG nebo Toast.LENGTH_SHORT.

  2. Následně metodě pošleme zprávu show().

Příklad:

Toast hlaseni = Toast.makeText(this, R.strings.text_hlaseni, Toast.LENGTH_LONG);
hlaseni.show();

Nebo častěji zkráceně:

Toast.makeText(this, R.strings.text_hlaseni, Toast.LENGTH_LONG).show();

Další dialogy

Pokud potřebujeme od uživatele potvrzení nějaké akce, Toast nám nestačí. Pro tyto situace je k dispozici třída AlertDialog. Způsob jejího použití však necháme na samostudiu čtenáře.


Textové pole s možností úprav (EditText)

Pokud potřebujeme od uživatele získat textovou informaci, hodí se nám prvek EditText, tedy klasické textové pole.


Návrh v XML: element EditText

  1. Šířka a výška se nastavuje stejně jako u tlačítka a dalších prvků.

  2. android:text pro nastavení počátečního obsahu (textu) v textovém poli.

  3. <EditText
        android:id="@+id/upravklienta_edit_heslo"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="numberPassword"
        />
    

  4. android:inputType pro nastavení, co do daného pole lze napsat.
    Dostupné možnosti jsou: text, textEmailAddress, textUri, number, phone, textPassword, numberPassword, textMultiLine a další. Hodnoty jdou navíc kombinovat. V takovém případě je oddělíme znakem.

Práce v kódu: třída EditText

  1. Nastavení a získání textu provedeme metodami:
    void setText(text)
    Editable getText() … vrací instanci třídy Editable, text získáme metodou toString().

  2. EditText jmeno = (EditText) this.findViewById(R.id.upravklienta_edit_jmeno);
    DataKlientu.getSeznam().get(this.zvolenyKlient).setJmeno(jmeno.getText().toString());
    

  3. Chceme-li, aby se text na začátku editace označil, použijeme metodu void selectAll OnFocus (true).

  4. EditText teJmeno = (EditText) this.findViewById(R.id.upravklienta_edit_heslo);
    teJmeno.setText(DataKlientu.getSeznam().get(this.zvolenyKlient).getJmeno());
    teJmeno.selectAllOnFocus(true);
    

Další zajímavé prvky

V mnoha aplikacích se budou čtenáři hodit prvky:

  • CheckBox pro klasické zatrhávací pole

  • RadioButton a RadioGroup pro volbu z několika možností

  • Switch pro přepínač (výběr mezi volbami ano/ne a podobně)

  • NumberPicker pro výběr/zadání čísla

  • DatePicker pro výběr/zadání data

  • TimePicker pro zadání časového údaje

  • a Spinner pro výběr položky z rozbalovacího seznamu

Pro podrobnosti týkající se práce s těmito prvky odkážeme čtenáře na studium dokumentace.



Shrnutí

  1. Pro krátké informativní hlášení lze použít třída Toast.

  2. Pro zadávání textů uživatelem využijeme třídu EditText.

  3. Uvedli jsme si i další prvky, které se mohou hodit. Jejich použití ale přenecháváme na samostudiu čtenáře.