Ćwiczenie 4 - Robert Arsoba
Transkrypt
Ćwiczenie 4 - Robert Arsoba
Programowanie urządzeń mobilnych w systemie Android dr inż. Robert Arsoba Ćwiczenie 4 Tworzenie prostego interfejsu użytkownika Cel ćwiczenia Celem ćwiczenia jest praktyczne zapoznanie się z podstawowymi zasadami tworzenia prostego interfejsu użytkownika oraz wykształcenie umiejętności wykorzystania podstawowych kontrolek dostępnych na platformie Android. Zakres ćwiczenia obejmuje definiowanie głównej aktywności aplikacji, wykorzystanie klasy Activity i podstawowych kontrolek dziedziczących po klasie View (TextView, EditText, Button, CheckBox, RadioGroup, RadioButton, Toast). Przygotowanie się do ćwiczenia Zapoznać się z wykładem „Interfejs użytkownika – elementy”. Zapoznać się z hierarchią klas kontrolek interfejsu użytkownika. Przestudiować zestaw kontrolek tekstu, przycisków i pól wyboru oraz zapoznać się z obsługą tych kontrolek w podstawowym zakresie. Przeanalizować sposób obsługi kliknięcia przycisku przy użyciu interfejsu nasłuchu OnClickListener (zwrócić uwagę na metodę onClick). Na podstawie dokumentacji Android SDK: http://developer.android.com/reference/packages.html zapoznać się w podstawowym zakresie z klasami TextView, EditText, Button, CheckBox, RadioGroup, RadioButton, Toast. Zapoznać się z przykładową aplikacją zamieszczoną w opisie ćwiczenia. Przeanalizować kod źródłowy aplikacji. Zadania do wykonania 1. Uruchomić przykładową aplikację zamieszczoną w opisie ćwiczenia i przetestować jej działanie. 2. Zmodyfikować przykładową aplikację, umożliwiając przeliczanie temperatury ze skali Celsjusza na skalę Fahrenheita i odwrotnie. Zastosować w tym celu pola wyboru RadioButton i obsługiwać je analogicznie do przycisków Button. Stan pól wyboru sprawdzać metodą isChecked. 3. Napisać aplikację umożliwiającą rozwiązywanie równania kwadratowego postaci: ax2 bx c 0 przy założeniu, że a jest różne od 0. Dla głównej aktywności aplikacji wykorzystać obiekt klasy Activity, do wprowadzania współczynników równania użyć obiektów klasy EditText, do wyświetlania wyników zastosować obiekty klasy TextView. Materiały przygotowano w ramach projektu „Inżynier pilnie poszukiwany” Strona 1 Programowanie urządzeń mobilnych w systemie Android dr inż. Robert Arsoba Przykładowa aplikacja – plik źródłowy Projekt2Activity.java Zwrócić uwagę na wykorzystanie klasy Activity i obsługę przycisków Button. package org.przyklad; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class Projekt2Activity extends Activity implements OnClickListener { private EditText et1, et2; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn1 = (Button) this.findViewById(R.id.button1); Button btn2 = (Button) this.findViewById(R.id.button2); btn1.setOnClickListener(this); btn2.setOnClickListener(this); et1 = (EditText) this.findViewById(R.id.editText1); et2 = (EditText) this.findViewById(R.id.editText2); } public void onClick(View v) { if (v.getId() == R.id.button1) { Toast toast = Toast.makeText(Projekt2Activity.this, "Przeliczamy...", Toast.LENGTH_SHORT); toast.show(); przelicz(); } else if (v.getId() == R.id.button2) this.finish(); } private void przelicz() { CharSequence chs = et1.getText(); String s = chs.toString(); double x = Double.parseDouble(s); double y = 9.0/5.0*x+32.0; Double yy = new Double(y); s = yy.toString(); et2.setText((CharSequence) s); } // Zwrócić uwagę na różnicę pomiędzy // typami napisów CharSequence i String. } Materiały przygotowano w ramach projektu „Inżynier pilnie poszukiwany” Strona 2 Programowanie urządzeń mobilnych w systemie Android dr inż. Robert Arsoba Przykładowa aplikacja – plik zasobów main.xml Zwrócić uwagę na sposób definiowania kontrolki TextView (etykieta tekstowa). <?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:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/tv1tekst" /> <EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="numberSigned" > <requestFocus /> </EditText> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button1tekst" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/tv2tekst" /> <EditText android:id="@+id/editText2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="numberSigned" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button2tekst" /> </LinearLayout> Materiały przygotowano w ramach projektu „Inżynier pilnie poszukiwany” Strona 3 Programowanie urządzeń mobilnych w systemie Android dr inż. Robert Arsoba Wygląd interfejsu użytkownika zdefiniowanego w pliku main.xml Przykładowa aplikacja – plik zasobów strings.xml Zwrócić uwagę na sposób definiowania napisów w węzłach <string>. <?xml version="1.0" encoding="utf-8"?> <resources> <string <string <string <string <string name="tv1tekst">Podaj temperaturę Celsjusza:</string> name="tv2tekst">Przeliczona temperatura Fahrenheita:</string> name="button1tekst">Przelicz</string> name="button2tekst">Koniec</string> name="app_name">Przelicznik temperatury</string> </resources> Materiały przygotowano w ramach projektu „Inżynier pilnie poszukiwany” Strona 4