Tvorba aplikací pro Android

05

Další prvky grafického rozhraní

V této kapitole si ukážeme další běžně používané prvky grafic­kého rozhraní ap­likací pro An­droid. Výčet samozřejmě nebude úplný, použití dalších prvků ponec­háme čtenáři k samos­tudiu.


Vys­kakovací hlášení (Toast)

Pokud chceme uživatele in­for­movat o proběhlých událos­tech, ale myslíme si, že tato in­for­mace není pro uživatele příliš důležitá, můžeme použít vys­kakovací hlášení. Toto hlášení se objeví v okénku u spodního ok­raje ob­razov­ky, je částečně průhledné a po chvíli zase zmizí.


K zob­raz­ení vys­kakovacího hlášení použijeme třídu Toast.

  1. Novou in­stan­ci vyrobíme voláním třídní metody
    makeText(context, text, delkaZobrazeni).
    Kon­text ob­vykle odpovídá ak­tivitě, v rámci které hlášení vypisujeme, text je odkaz na tex­tový řetěz s tex­tem, jako délku zob­raz­ení 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ší di­alogy

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


Tex­tové pole s možností úprav (Edit­Text)

Pokud pot­řebujeme od uživatele získat tex­tovou in­for­maci, hodí se nám prvek EditText, tedy klasické tex­tové pole.


Návrh v XML: ele­ment EditText

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

  2. android:text pro nas­tav­ení počátečního ob­sahu (textu) v tex­tové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 nas­tav­ení, co do daného pole lze nap­sat.
    Dos­tupné možnosti jsou: text, textEmailAddress, textUri, number, phone, textPassword, numberPassword, textMultiLine a další. Hod­noty jdou navíc kom­binovat. V takovém případě je oddělíme znakem.

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

  1. Nas­tav­ení a získání textu pro­vedeme metodami:
    void setText(text)
    Editable getText() … vrací in­stan­ci 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 ap­likacích se budou čtenáři hodit prvky:

  • CheckBox pro klasické zatrhávací pole

  • RadioButtonRadioGroup pro volbu z několika možností

  • Switch pro přepínač (výběr mezi vol­bami 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 roz­balovacího sez­namu

Pro pod­robnos­ti týkající se práce s těmito prvky odkážeme čtenáře na studium dokumen­tace.



Shrnutí

  1. Pro krátké in­for­mativní hlášení lze použít třída Toast.

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

  3. Uved­li jsme si i další prvky, které se mohou hodit. Je­jich použití ale přenecháváme na samos­tudiu čtenáře.