Zdarzenia Klasa Application Powiadomienia Toast AlertDialog

Podobne dokumenty
Laboratorium 9 (Więcej Aktywności, w Androidzie)

Programowanie dla Androida. Ubiquitous

Podstawowe kontrolki i ich obsługa

akademia androida Service, BroadcastReceiver, ContentProvider część IV

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Programowanie usług działających w tle

Fragmenty są wspierane od Androida 1.6

akademia androida Sensory część V Mobile Applications Developers

Przed przystąpieniem do czytania dokumentu, proszę o zapoznanie się z podstawowym dokumentem Instrukcja obsługi AZU dla użytkownika zewnętrznego.

Życie aktywności Nawigując przez aplikacje poszczególne Aktywności przechodzą pomiędzy stanami. Dla przykładu gdy aktywność uruchamia się po raz

Powiadomienia w systemie Android

akademia androida Pierwsze kroki w Androidzie część I

dr Artur Bartoszewski dr Artur Bartoszewski - Aplikacje mobilne - Wykład

dr inż. Tomasz Krzeszowski

Przed przystąpieniem do czytania dokumentu, proszę o zapoznanie się z podstawowym dokumentem Instrukcja obsługi AZU dla użytkownika zewnętrznego.

Programowanie aplikacji mobilnych

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

Podstawowe elementy GUI - zadania

WSTĘP DO ANDROIDA. Laboratorium

Programowanie w środowisku graficznym GUI

Temat 3. Projektowanie interfejsu użytkonwnika Kalkulator pierwszy program dla IOS

Programowanie urządzeń mobilnych

Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński

WSTĘP DO ANDROIDA. Laboratorium 1 Systemy i aplikacje bez granic

Klasy abstrakcyjne i interfejsy

Mobilne aplikacje multimedialne

PHP 5 język obiektowy

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Wprowadzenie do projektu QualitySpy

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Zawartość. Wstęp. Moduł Rozbiórki. Wstęp Instalacja Konfiguracja Uruchomienie i praca z raportem... 6

Dynamiczne i wydajne tworzenie interfejsu. Piotr Michałkiewicz

UMOWY INSTRUKCJA STANOWISKOWA

Nowy interfejs w wersji 11.0 C8 BETA

Spis treści. 1 Moduł Mapy 2

Temat: Organizacja skoroszytów i arkuszy

Android, wprowadzenie do SDK

Nieskonfigurowana, pusta konsola MMC

Uwaga Przed każdą aktualizacją, zalecane jest zrobienie kopii bezpieczeństwa bazy oraz bibliotek programu

Dodawanie, edycja i usuwanie zbioru kolekcji

Kopiowanie, przenoszenie plików i folderów

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

Formy dialogowe w środowisku Gnome

Język Java część 2 (przykładowa aplikacja)

Programowanie aplikacji dla technologii mobilnych. mgr inż. Anton Smoliński

Dodanie nowej formy do projektu polega na:

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Aktywności są związane z ekranem i definiują jego wygląd. Dzieje się to poprzez podpięcie do aktywności odpowiedniego widoku.

Modelowanie obiektowe - Ćw. 1.

Pliki zorganizowano w strukturze drzewiastej odzwierciedlając strukturę logiczną aplikacji:

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

ERGODESIGN - Podręcznik użytkownika. Wersja 1.0 Warszawa 2010

Programowanie Obiektowe GUI

R o g e r A c c e s s C o n t r o l S y s t e m 5. Nota aplikacyjna nr 016 Wersja dokumentu: Rev. A. obecności w VISO

Spis treści. S t r o n a 2

Dodawanie operacji dodatkowych w WAPRO Mag.

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom:

Satel Integra FIBARO

Backend Administratora

Kompleksowe tworzenie aplikacji klasy Desktop z wykorzystaniem SWT i

Zaawansowane aplikacje internetowe

Podstawy WINDOWS 9x, 2000, XP

ROZDZIAŁ 1. PRZEGLĄD BRAMOFONU SAFE...

Instrukcja laboratoryjna cz.3

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

EAP XML Legislator Opis zmian w wersji Service Pack 41 ABC PRO Sp. z o.o.

Język Java część 2 (przykładowa aplikacja)

Informatyzacja Przedsiębiorstw

Informatyka I. Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. Politechnika Warszawska Wydział Transportu 2018

Wykład 8: klasy cz. 4

WSTĘP DO ANDROIDA. Laboratorium 2 Systemy i aplikacje bez granic

Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2

Klasy abstrakcyjne, interfejsy i polimorfizm

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Rozdział 1. Przegląd bramofonu SAFE

VectraPortal. VectraPortal. wersja Instrukcja użytkownika Podstawowa funkcjonalność serwisu. [czerwiec 2016]

akademia androida Intencje oraz URI część III

Programowanie obiektowe

Systemy operacyjne na platformach mobilnych

Aplikacja webowa w Javie szybkie programowanie biznesowych aplikacji Spring Boot + Vaadin

Dane słowa oraz wyrażenia są tłumaczone przy pomocy polecenia Przetwarzanie > Tłumaczenie

Zdarzenie Zachodzi gdy Kolejność zdarzeń Kolejność Zdarzenie Opis uwaga: CausesValidation True.

Supermakler: Nowe funkcjonalności

Diagnostyka pamięci RAM

Programowanie urządzeń mobilnych w systemie Android. Ćwiczenie 7 Wykorzystanie układu LinearLayout

Programowanie obiektowe

Programowanie obiektowe - 1.

Zad. 7: Fabryka obiektów i singleton

Opis zmian w wersji aplikacji Cyfrowe Repozytorium Dokumentów

PWI Instrukcja użytkownika

Baza danych sql. 1. Wprowadzenie. 2. Repozytaria generyczne

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

Informatyka II. Laboratorium Aplikacja okienkowa

Opis zmian funkcjonalności platformy E-GIODO wprowadzających możliwość podpisania wniosku bezpośrednio w oknie przeglądarki.

Słowa kluczowe Sterowanie klawiaturą, klawiatura, klawisze funkcyjne, przesuwanie obiektów ekranowych, wydawanie poleceń za pomocą klawiatury

Wyszukiwanie plików w systemie Windows

plansoft.org Zmiany w Plansoft.org Błyskawiczny eksport danych PLANOWANIE ZAJĘĆ, REZERWOWANIE SAL I ZASOBÓW

Transkrypt:

Android Wykład 3 1

Zdarzenia Klasa Application Powiadomienia Toast AlertDialog 2

Zdarzenia UI (UI Events) zapewniają programowi interakcje z użytkownikiem. Obiekty określają wzajemne oddziaływania z resztą "świata" poprzez metody, które ujawniają. Gdy naciskamy przycisk oczekujemy konkretnej akcji, tą akcję zapewniają nam właśnie metody, 3

W Androidzie dzieje się to poprzez przchwytywanie zdarzenia z danego obiektu klasy View. Klasa View stanowi klasę bazową dla wszystkich widgetów GUI (Button, RadioButton, TextView, itd ) zwanych Widokami (Views). Wśród różnych obiektów klasy View zdefiniowane są publiczne metody zapewniające obsługę zdarzeń UI. 4

Metody te są wywoływane przez framework Androida gdy zajdzie odpowiednia akcja (zdarzenie). I tak o to kiedy obiekt View (np. Button) jest dotknięty, wywoływana jest metoda ontouchevent(). Aby tak się stało należy rozszerzyć klasę o odpowiedni interfejs (interface) oraz nadpisać metodę docelową. 5

Interfejs jest pośrednikiem pomiędzy zdarzeniem a reakcją. Ponadto z uwagi, że zdefiniowane metody są puste nie ma konieczności jawnego powiadamiania kompilatora o tym fakcie poprzez zastosowanie adnotacją @Override. 6

Klasa View zawiera kolekcję zagnieżdżonych interfejsów - zwanych nasłuchiwaczami zdarzeń (Event listeners). Interfejs w reakcji na zdarzenie (dotknięcie, zmiana parametru, itd...) wywołuje odpowiednią metodą (zdefiniowaną w nim). Oczywiście istnieje możliwość rozszerzania klasy View poprzez definiowanie własnych zdarzeń 7

onclick() - z View.OnClickListener. Metoda jest wywoływana, gdy użytkownik dotknie obiekt albo skupi uwagę na obiekcie za pomocą nawigacji lub trackballa i wciśnie odpowiadający klawisz zatwierdzający. 8

onlongclick() - z View.OnLongClickListener. Metoda jest wywoływana gdy użytkownik dotknie i przytrzyma obiekt. W przypadku gdy nie ma modułu dodykowego tyczy to się zdarzenia, w którym użytkownik wybierze obiekt a następnie wciśnie i przytrzyma odpowiedni klawisz. 9

onfocuschange() - z View.OnFocusChangeListener. Metoda wywoływana, gdy użytkownik skupi/zmieni uwagę (focus) na obiekcie za pomocą przycisków nawigacyjnych lub trackballa. onkey() - z View.OnKeyListener. Ta metoda jest wywoływana gdy użytkownik wciśnie dowolny klawisz na urządzeniu. 10

ontouch() - z View.OnTouchListener. Ta metoda jest wywoływana gdy użytkownik wykona akcję kwalifikowaną jako zdarzenie dodykowe, czyli wciśnie lub wykona gest. oncreatecontextmenu() - z View.OnCreateContextMenuListener. Z kolei ta metoda jest wywoływana w momencie utworzenia menu kontekstowego. 11

Wymienione zdarzenia klasy View często określane są mianem zdarzeń wejściowych (Input events). Warto też dodać, że inne klasy bazowe np. Text również posiadają zdarzenia - np. TextWatcher - te jednak mniej zależą od bezpośredniego udziału użytkownika a reagują na bodźce w programie. 12

Klasa aplikacji (ang. Application class) jest jedną z powszechniej używanych klas bazowych w Androidzie Jest to klasa poziomu aplikacji - zwana także kontrolerem (ang. controller). Obiekt aplikacji, tworzony w momencie jej uruchamiania i usuwany w momemcie jej zamykania - reprezentuje wspólny stan naszej całej aplikacji. 13

Większość aplikacji korzysta z domyślnej klasy dostarczonej przez framework (android.app.application). Oczywiście istnieje możliwość implementacji własnej instancji tego obiektu i zarządzanie globalnym stanem naszej aplikacji czy też dodanie obsługi (wspólnej dla reszty aplikacji) funkcjonalności. 14

Aby zaimplementować własną klasę aplikacji należy: Utworzyć nową klasę dziedziczącą po klasie aplikacji. Zrejstrować tą klasę w pliku Manifest.xml. 15

Poniżej przykład implementacji przykładowej klasy aplikacji: 16

Aby zarejestrować w pliku Manifest naszą własną instancję aplikacji należy dodać atrybut android:name=".someapplication" do elementu : 17

Cykl życiowy obiektu aplikacji reprezentują tylko 2 metody: oncreate() - wykonywana w momencie uruchamiania procesu naszej aplikacji, oraz onterminate() - wykonywana w momencie zamykania procesu naszej aplikacji. 18

Nie ma metod onpause() - ani ondestroy(), typowych dla aktywności (ang. Activities. Ponadto, mamy do dyspozycji metody - dzięki którym w prosty sposób możemy reagować na bodźce z systemu, w którym działa nasza aplikacja. 19

Są to: onconfigurationchanged(configuration newconfig) - metoda wywoływana w trakcie gdy w systemie, w kótrym nasza aplikacja działa - zajdą jakiekolwiek zmiany w konfiguracji, 20

onlowmemory() - metoda wywoływana, gdy system pracuje na niskim poziomie pamięci - tu możemy uwolnić nieużywane zasoby - zaraz po tej metodzie do akcji wkracza GC (ang. Garbage collector), ontrimmemory(int level) - ta metoda jest wywoływana gdy system, uznał że np. nasza działająca w tle aplikacja nie potrzbuje więcej pamięci i nam ją zabiera. 21

Wracając do wspomnianych na początku zalet korzystania z własnej implementacji obiektu aplikacji - jedną z niewątpliwych jest zarządzanie globalnym stanem naszej aplikacji. Równie przydatnym jest dzielenie w obrębie aplikacji wspólnych metod. 22

Aby uzyskać dostęp do tych metod, wpierw należy uzyskać instancję obiektu naszej aplikacji: SomeApplication someapplication = (SomeApplication)getApplication(); 23

Tu warto jednak dodać, że zazwyczaj nie ma potrzeby implementacji własnej klasy Application. Zwłaszcza, jeśli chcemy np. tylko dzielić wspólne metody w obrębie naszej aplikacji. 24

Statyczne singletony mogą zapewnić tą samą funkcjonalność w bardziej elastyczny sposób. W przypadku, gdyby taki singleton potrzebował globalny kontekst - dostarczamy go poprzez wywołanie Context.getApplicationContext(). 25

Czasami może pojawić zajść potrzeba powiadomienia użytkownika o zdarzeniu, które występuje w aplikacji. Niektóre powiadomienia wymagają od użytkownika odpowiedzi, a inni nie. 26

Na przykład: Kiedy zdarzenie, takie jak zapisywanie pliku jest zakończone, powinien pojawić się komunikat potwierdzający sukces zapisu danych. Jeżeli aplikacja działa w tle i potrzebuje uwagi użytkownika, aplikacja powinna stworzyć powiadomienie, które pozwala użytkownikowi na reakcję 27

Jeśli aplikacja wykonuje długotrwałą pracę na wynik której użytkownik musi czekać (np. ładowania pliku), aplikacja powinna w jakiś sposób zasygnalizować ten stan poprzez np wyświetlenie paska postępu. 28

Każde z tych zadań powiadamiania można osiągnąć stosując inną technikę: Toast Notification krótki komunikat Status Bar Notification powiadomienie na pasku stanu Dialog Notification powiadomienie w postaci okna dialogowego 29

Powiadomienie typu Toast może być wyświetlone z poziomu aktywności (Activity) lub usługi (Service) Jest to rodzaj powiadomienia stosowany wtedy, kiedy nie zachodzi potrzeba pobrania odpowiedzi od użytkownika 30

Standardowo powiadomienie typu Toast wyświetlane jest w dolnej części ekranu. Można zmienić położenie okna powiadomienia wykorzystując metodę setgravity(int, int, int) toast.setgravity(gravity.top Gravity.LEFT, 0, 0); 31

Użytkownik może przygotować własne powiadomienie typu Toast Należy przygotować układ okna powiadomienia, zawartość umieszczając w pliku.xml 32

33

34

35

36

37

38

39

Dialog można również skonstruować w postaci listy opcji do wyboru Zamiast dodawania do dialogu przycisków dodajemy listę elementów korzystając z metody setitems 40

41

42

KONIEC 43