Ć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

Podobne dokumenty