Ćwiczenie 13 - Robert Arsoba
Transkrypt
Ćwiczenie 13 - Robert Arsoba
Programowanie urządzeń mobilnych w systemie Android dr inż. Robert Arsoba Ćwiczenie 13 Tworzenie i obsługa menu Cel ćwiczenia Celem ćwiczenia jest praktyczne zapoznanie się z zasadami tworzenia menu oraz wykształcenie umiejętności wykorzystania menu w aplikacjach. Zakres ćwiczenia obejmuje definiowanie podstawowych rodzajów menu (standardowe, podmenu, rozszerzone) i użycie intencji predefiniowanych (systemowych). Przygotowanie się do ćwiczenia Zapoznać się z wykładem „Dostawcy treści, intencje i adaptery”. Zwrócić uwagę na fragment wykładu dotyczący intencji. Przeanalizować dostępne intencje predefiniowane. Przypomnieć wykorzystanie intencji do uruchamiania aktywności. Zapoznać się z wykładem „Tworzenie i obsługa menu”. Zwrócić uwagę na sposób tworzenia menu standardowego i podmenu. Przeanalizować trzy sposoby odpowiadania na wybór elementu menu (metoda onOptionsItemSelected, implementacja interfejsu OnMenuItemClickListener, użycie intencji). Na podstawie dokumentacji Android SDK: http://developer.android.com/reference/packages.html zapoznać się w podstawowym zakresie z klasami Menu, MenuItem, SubMenu. 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ę omawianą w ćwiczeniu, rozbudowując menu o kilka dodatkowych pozycji z przypisanymi do nich intencjami predefiniowanymi. 3. Napisać aplikację obliczającą pola powierzchni kilku figur geometrycznych. Wyboru figury geometrycznej dokonywać przy użyciu menu. Z każdą pozycją w menu skojarzyć uruchomienie oddzielnej aktywności z interfejsem dla wybranej figury geometrycznej. 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 Projekt10Activity.java Zwrócić uwagę sposób tworzenia menu w metodzie onCreateOptionsMenu i sposób odpowiedzi na wybór elementu menu w metodzie onOptionsItemSelected. package org.przyklad; import import import import android.app.Activity; android.os.Bundle; android.view.Menu; android.view.MenuItem; public class Projekt10Activity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); int base = Menu.FIRST; menu.add(base, base, base, "Przeglądarka www"); menu.add(base, base+1, base+1, "Wyszukiwanie www"); menu.add(base, base+2, base+2, "Dzwoń"); menu.add(base, base+3, base+3, "Koniec"); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case 1: IntencjeSystemowe.uruchomWebBrowser(this); break; case 2: IntencjeSystemowe.uruchomWebSearch(this); break; case 3: IntencjeSystemowe.dial(this); break; case 4: this.finish(); break; } return true; } } 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 IntencjeSystemowe.java Zwrócić uwagę sposób tworzenia intencji (akcja i dane), wykorzystanie intencji systemowych oraz uruchamianie aktywności przy pomocy intencji. package org.przyklad; import android.app.Activity; import android.content.Intent; import android.net.Uri; public class IntencjeSystemowe { public static void uruchomWebBrowser(Activity activity) { Intent intencja = new Intent(Intent.ACTION_VIEW); intencja.setData(Uri.parse("http://m.onet.pl")); activity.startActivity(intencja); } public static void uruchomWebSearch(Activity activity) { Intent intencja = new Intent(Intent.ACTION_WEB_SEARCH); intencja.setData(Uri.parse("http://www.google.com")); activity.startActivity(intencja); } public static void dial(Activity activity) { Intent intencja = new Intent(Intent.ACTION_DIAL); activity.startActivity(intencja); } } Przykładowa aplikacja – plik main.xml <?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/komunikat" /> </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 Zdefiniowane menu aplikacji Efekt intencji ACTION_WEB_SEARCH Efekt intencji ACTION_DIAL Przykładowa aplikacja – plik strings.xml <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Menu</string> <string name="komunikat">Naciśnij klawisz MENU, aby wywołać menu.</string> </resources> Materiały przygotowano w ramach projektu „Inżynier pilnie poszukiwany” Strona 4