206
Rozdział 5.
Pola wyboru
Pola wyboru
Pola wyboru umożliwiają prezentowanie użytkownikom grupy opcji.
Użytkownicy mogą następnie wybierać z tej grupy dowolne opcje.
Każde pole wyboru można zaznaczyć niezależnie od pozostałych.
android.view.View
...
android.widget.TextView
...
android.widget.Button
...
android.widget.
CompoundButton
...
android.widget.CheckBox
...
Oto dwa pola wyboru. Użytkownik
może zaznaczyć mleko, cukier
lub oba te pola albo może nie
zaznaczać żadnego z nich.
Definiowanie w kodzie XML
Pola wyboru definiuje się w kodzie XML za pomocą elementów
<CheckBox>
. Tekst
wyświetlany obok danego pola można określić, używając atrybutu
android:text
:
<CheckBox android:id=”@+id/checkbox_milk”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/milk” />
<CheckBox android:id=”@+id/checkbox_sugar”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/sugar” />
Stosowanie w kodzie aktywności
Do określenia, czy konkretne pole wyboru jest zaznaczone, czy nie, służy metoda
isChecked()
. Jeśli pole jest zaznaczone, jej wywołanie zwróci wartość
true
:
CheckBox checkbox = (CheckBox) findViewById(R.id.checkbox_milk);
boolean checked = checkbox.isChecked();
if (checked) {
// Pole jest zaznaczone — reagujemy odpowiednio
}
Widoki i grupy widoków
207
jesteś tutaj
Pola wyboru (ciąg dalszy)
Podobnie jak w przypadku przycisków, istnieje także możliwość reagowania na kliknięcie
pola wyboru. W tym celu należy dodać do kodu XML układu atrybut
android:onClick
i przypisać mu nazwę metody zdefiniowanej w kodzie aktywności, którą należy wywołać:
<CheckBox android:id=”@+id/checkbox_milk”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/milk”
android:onClick=”onCheckboxClicked”/>
<CheckBox android:id=”@+id/checkbox_sugar”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”@string/sugar”
android:onClick=”onCheckboxClicked”/>
Metoda obsługująca kliknięcia pól tekstowych mogłaby zostać zdefiniowana
w następujący sposób:
public void onCheckboxClicked(View view) {
// Czy kliknięte pole wyboru jest zaznaczone?
boolean checked = ((CheckBox) view).isChecked();
// Określamy, które pole zostało kliknięte
switch(view.getId()) {
case R.id.checkbox_milk:
if (checked)
// Kawa z mlekiem
else
// Czarna jak niebo w bezksiężycową noc
break;
case R.id.checkbox_sugar:
if (checked)
// Słodziutka
else
// Lepiej niech będzie gorzka
break;
}
}
W tym przypadku metoda onCheckboxClicked()
zostanie wywołana niezależnie od tego,
które pole wyboru zostało kliknięte.
W razie potrzeby w każdym polu wyboru
można zastosować inną metodę.
Get Android Programowanie aplikacji. Rusz głową! Wydanie II now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.