Android WYKŁAD 3. Agenda Odtwarzanie stanu Activity Walidacja danych z widoków Przycisk "wstecz" Material Design Fragmenty Implementacja GUI opartego.

Slides:



Advertisements
Podobne prezentacje
Aplikacja MS Project w branży budowlanej Łukasz Jabłoński Katedra Konstrukcji Budowlanych Politechnika Lubelska.
Advertisements

NIE TAKI KOMPUTER STRASZNY JAK GO MALUJĄ PODSTAWY OBSŁUGI KOMPUTERA.
Nauczanie na odległość Dr inż. Marlena Plebańska.
Czynniki sprzyjające zdrowiu Tryb życia a zdrowie
Jak złożyć wniosek ? (GWA) Regionalny Program Operacyjny Województwa Pomorskiego na lata
Czy wiesz, że?... INTERNET …TO JEST SPIS TREŚCI NIEBEZPIECZEŃSTWO SPOŁECZNOŚĆ INTERNETOWA DZIECKO W INTERNECIE ZAUFANE STRONY INTERNETOWE WIRUSY.
Tworzenie odwołania zewnętrznego (łącza) do zakresu komórek w innym skoroszycie Możliwości efektywnego stosowania odwołań zewnętrznych Odwołania zewnętrzne.
GRUPY I ZESPOŁY © dr E.Kuczmera-Ludwiczyńska, mgr D.Ludwiczyński.
PRACA Z APLIKACJAMI SYSTEM PRZEMIESZCZANIA oraz NADZORU WYROBÓW AKCYZOWYCH EMCS PL 1.
Portale społecznościowe. Serwis społecznościowy  to serwis internetowy, który istnieje w oparciu o zgromadzoną wokół niego społeczność. Tworzy tak zwane.
OBYWATELSTWO POLSKIE I UNIJNE 1.Obywatel a państwo – zasady obywatelstwa polskiego 2.Nabycie i utrata obywatelstwa 3.Obywatelstwo Unii Europejskiej. 4.Brak.
Wyszukiwanie informacji w Internecie. Czym jest wyszukiwarka? INTERNET ZASOBY ZAINDEKSOWANE PRZEZ WYSZUKIWARKI Wyszukiwarka to mechanizm, który za pomocą.
ELEMENTY ZESTAWU KOMPUTEROWEGO
Zasady tworzenia prezentacji multimedialnych Autor: Switek Marian.
Zasady tworzenia prezentacji multimedialnych I. Główne zasady: prezentacja multimedialna powinna być ilustracją (uzupełnieniem) treści prezentowanych.
Warstwa biznesowaWarstwa techniczna ??? To przejście jest połączone z innym procesem To przejście wywołuje samowyzwalacz To przejście jest warunkowe.
Wniosek o dofinansowanie projektu w ramach RPO WP na lata wraz z załącznikami Regionalny Program Operacyjny Województwa Pomorskiego na lata
Poczta elektroniczna – e- mail Gmail zakładanie konta. Wysyłanie wiadomości.
Literary Reference Center Przewodnik
EWALUACJA PROJEKTU WSPÓŁFINANSOWANEGO ZE ŚRODKÓW UNII EUROPEJSKIE J „Wyrównywanie dysproporcji w dostępie do przedszkoli dzieci z terenów wiejskich, w.
Czyli Jędrki, Emki i Zuźki. Każdy człowiek ma w sobie wielkie możliwości, musi je tylko odkryć !
Wprowadzenie Celem naszej prezentacji jest przypomnienie podstawowych informacji na temat bezpiecznego powrotu do domu i nie tylko. A więc zaczynamy…;)
OBSŁUGA KARTY DILO. Karta diagnostyki i leczenia onkologicznego zawiera: - oznaczenie pacjenta, pozwalające na ustalenie jego tożsamości, - oznaczenie.
1 „Praktyczne narzędzia ICT w realizacji edukacyjnych projektów”
Wiem czego chcę!!!.  Każdy z Nas staje przed różnymi wyborami. Jednym z najważniejszych jest wybór ścieżki kształcenia.  Twoja Kariera jest w twoich.
W prezentacji przedstawione zostaną możliwości i zalety korzystania z dziennika elektronicznego oraz instrukcja obsługi tego programu.
OPTYMALNY CEL I PODSTAWY ROZWOJU SZKOŁY. PRZEDE WSZYSTKIM DZISIEJSZA SZKOŁA POWINNA PRZYGOTOWYWAĆ DO ŻYCIA W DRUGIEJ POŁOWIE XXI WIEKU.
Jak to się robi ? Instrukcja wypełnienia dzienniczka treningowego, na podstawie danych z GARMIN-a Forerunner 305.
Porównywarki cen leków w Polsce i na świecie. Porównywarki w Polsce.
Algorytmy Informatyka Zakres rozszerzony
Materiały pochodzą z Platformy Edukacyjnej Portalu Wszelkie treści i zasoby edukacyjne publikowane na łamach Portalu
KARTY RATOWNICZE W POLSCE
Po pierwsze: Bądź odważny! Weź los w swoje ręce, w końcu do odważnych świat należy. Niech Twoja odwaga nie oznacza jednak podejmowania ryzyka bez analizy.
Wyższa Szkoła Informatyki i Zarządzania w Bielsku-Białej Wydział Informatyki Kierunek: Informatyka Specjalność: Systemy Informatyczne PRACA DYPLOMOWA INŻYNIERSKA.
Aplikacje na urządzenia mobilne o zdrowym trybie życia.
Praca dyplomowa inżynierska Temat: Informatyczny system edukacyjny do przedmiotu „Podstawy Kryptologii” Dyplomant: Ewelina Bogusz Promotor: prof. zw.,
Instalacja nienadzorowana windows xp Jakub klafta.
Python. Języki Programistyczne Microcode Machine code Assembly Language (symboliczna reprezentacja machine code) Low-level Programming Language (FORTRAN,
Wieloaspektowa analiza czasowo- kosztowa projektów ze szczególnym uwzględnieniem kryterium jakości rozwiązań projektowych AUTOR: ANNA MARCINKOWSKA PROMOTOR:
Strategia Rozwoju Powiatu Kluczborskiego planowanie strategiczne w JST Małgorzata Ziółkowska tel kom
Analiza, projekt i implementacja zintegrowanego systemu zarządzania i promocji dla branży gastronomicznej Krzysztof Grabalski 5921.
ACCESS - RELACJE TEMAT:. Tworzenie i edycja relacji Relacje w bazach danych tworzone są w celu powiązania z sobą danych z wielu tabel. Tworzymy (edytujemy)
Usługa ePodatki (MF) Michał Dobrzyński, Departament Informatyki MRPiPS tel
Definiowanie i planowanie zadań typu P 1.  Planowanie zadań typu P  Zadania typu P to zadania unikalne służące zwykle dokonaniu jednorazowej, konkretnej.
Marek Kozłowski Ekosystem PBN. Wprowadzenie Polska Bibliografia Naukowa to portal Ministerstwa Nauki i Szkolnictwa Wyższego gromadzący informacje dotyczące.
1 Definiowanie i planowanie zadań budżetowych typu B.
Magdalena Garlińska Generator wniosków o dofinansowanie Program INNOCHEM.
Urządzenia i technologie mobilne. Tablet Mobilny komputer większy niż telefon komórkowy, którego główną właściwością jest posiadanie dużego ekranu z zastosowaną.
API jądra do obsługi przestrzeni użytkownika Co jest tematem tej prezentacji: Transport danych pomiędzy przestrzeniami użytkownika i jądra (asm/uaccess.h)
System operacyjny Renata P. System operacyjny - jest to zbiór nadrzędnych i niezbędnych programów umożliwiających pracę na komputerze. Jest on pośrednikiem.
Systemy wizyjne - kalibracja
Schematy blokowe.
Quick Tips Tutorial Jak uzyskać dostęp do raportów EBSCOhost i EBSCO Discovery Service w EBSCOadmin support.ebsco.com.
Akademia C# lab. 9 Zdarzenia i delegaty.
Dobieranie komputera Podzespoły.
PROGRAMY DO KONTROLI RODZICIELSKIEJ
Bezpieczeństwo dostępu do danych w systemie Windows
Języki programowania.
SMB – Pierwszy projekt Michail Mokkas.
Urządzenia typu Rooftop.
Multicast Visualization Tool
Koszyk danych.
Podstawy informatyki Zygfryd Głowacz.
Strukturalne wzorce projektowe
Wyjazdy dydaktyczne i szkoleniowe dla kadry akademickiej.
Autor: Magdalena Linowiecka
Najważniejsze operacje graficzne w programie GIMP
Instrukcja podpięć przedmiotów w USOSie
Zapis prezentacji:

Android WYKŁAD 3

Agenda Odtwarzanie stanu Activity Walidacja danych z widoków Przycisk "wstecz" Material Design Fragmenty Implementacja GUI opartego o zakładki Stylowanie aplikacji Implementacja listy Operacje IO: SharedPreferences Zapis odczyt z Internal i External Storage

Odtwarzanie stanu Activity Cel: Odtworzenie stanu Activity w przypadku jego wyłączenia przez system lub zmiany ekranu wywołanej np. zmianą orientacji telefonu Domyślnie stan każdego widoku jest zapisywany, dzięki czemu "layout przetrwa". Automatyczny zapis działa tylko dla widoków z własnym unikalnym ID! Dodatkowe dane mogą zostać zapisane dzięki implementacji metod: protected void onSaveInstanceState(Bundle outState); protected void onRestoreInstanceState(Bundle savedInstanceState);

Odtwarzanie Activity

Walidacja danych z widoków 5

6

Walidacja danych z widoków podczas wprowadzania Gdzieś w MainActivity Wyrażenie regularne: Dowolna ilość małych i dużych liter

Walidacja danych z widoku – typ wyświetlanej klawiatury android:inputType="phone"android:inputType="textPassword" android:inputType="number" android:inputType="time"

Podpięcie się pod przycisk "wróć"

Material design Nazwa filozofii tworzenia GUI, która przyświecać ma przy projektowaniu środowisk komputerowych i mobilnych Zalecenia co do tworzenia GUI, zachowania widoków, kolorystyki, ikon, typografii itd. Wspierana od Android 5.0 (API 21) poprzez nowe typy widoków Obecny w wielu na wielu innych platformach: Angular Material (angular), bootstrap-material-design (Bootstrap), Material Design In XAML Toolkit (C#), Jfoenix (Java)

Material Design - przygotowanie By wykorzystać widoki zgodne z Material Design w aplikacji należy w app/build.gradle dodać bibliotekę design suport do sekcji "zależności" Upewnić się, że aplikacja tworzona jest dla Androida >= 5.0 (API 23)

Fragmenty Fragment reprezentuje porcję (moduł, część) Activity. Fragmenty posiadają własny cykl życia, własne eventy. Można je dodawać i usuwać z aktywności w trakcie działania Powstały by tworzyć dynamiczne GUI w zależności od parametrów ekranu urządzeń bez konieczności martwienia się o jego dostosowywanie Fragmenty powinny być tworzone tak by możliwe było ich powtórne użycie

Tworzenie fragmentu Trzy identyczne fragmenty z różną zawartością

TabFragment1.java fragment_tab_fragment1.xml Fragment – pojedyncza zakładka

FragmentPageAdapter Klasa odpowiedzialna za zarządzanie fragmentami na zakładkach W zależności od Numeru strony zwraca dany fragment Ilość zakładek == ilości fragmentów do wyświetlenia Etykiety zakładek

Obsługa zakładek – widok Activity Umiejscowienie po osi Z Trick: Poprzez ustalenie takiego samego elevation możliwe jest zakrycie cienia poszczególnych komponentów

Obsługa zakładek – MainActivity.java Podłączenie stworzonego adaptera (kontrolera zakładek) z widokiem viewPage Podłączenie viewPagera z tablayoutem ADAPTERViewPager TabLayout Osobna metoda, by nie robić bałaganu w onCreate

Efekt…

onTabSelectedListener Zwraca numer zaznaczonej zakładki Po dodaniu własnego Listenera należy wykonać akcję podmiany strony samemu! Podczas opuszczania strony Po zaznaczeniu zakładki na której już jesteśmy Po przejściu na nową zakładkę

Stylowanie globalne aplikacji \app\src\main\res\values\styles.xml przechowuje style wizualne widoków \app\src\main\res\values\colors.xml definiuje kolory użyte w stylach Źródło: Odnośnik do colors.xml Styl bazowy

ThemeEditor – edytor styli

Lista w Material Design RecyclerView – bardziej rozbudowana wersja ListView, elastyczna klasa przeznaczona do wyświetlania nawet ogromnych porcji danych Zależności: app\build.gradle

ToDoItem - model Reprezentacja pojedynczego wpisu na liście (tzw. model)

CardView – layout/item.xml CardView – wygląd i zachowanie pojedynczego wpisu na liście

RecyclerView Reprezentacja listy. Umieszczamy na layoucie w miejscu gdzie ma się wyświetlić lista – najczęściej wypełnia całe activity LayoutManager – odpowiedzialny za pozycjonowanie elementów na liście. Można definiować swoje, lub wykorzystać wbudowane: LinearLayoutManager GridLayoutManager StaggeredGridLayoutManager Linear Grid Staggered

ViewHolder Wzorzec reprezentujący widok. Powtał by ograniczyć ilość wywołań findViewById

Adapter (Wrapper, Opakowanie) - ogólnie - wzorzec projektowy, którego celem jest umożliwienie współpracy dwóm klasom o niekompatybilnych interfejsach. W omawianym przypadku klasa Adapter jest pomostem między listą obiektów (List<>) a RecyclerView Klasa dziedzicząca po RecyclerView.Adapter w naszym przypadku po: RecyclerView.Adapter Należy zaimplementować: ToDoViewHolder onCreateViewHolder(ViewGroup parent, int viewType) Miejsce na inicjalizację naszego ViewHolder’a void onBindViewHolder(ToDoViewHolder holder, int position) Łączy widok (kontrolkę) z polem klasy int getItemCount() Zwraca ilość elementów na liście

Adapter

MainActivity – połączenie wszystkiego w całość Obrazki z folderu drawable

Efekt

Animacja za pomocą ItemTouchHelper Cel: swipe w lewo – oznacz jako zrobione (pokoloruj na zielono) Swipe w prawo – usuń Poprawki: ToDoAdapter: ToDoViewHolder: Usuwa element z list Uaktualnia stan adaptera. WAŻNE!

Dodanie nowej funkcjonalności Swipe w prawo i lewo Metoda obsługująca zmianę położenia w pionie Zwraca pozycje na liście Kolor z zasobów Zmienia tło Aktualizuje listę! WAŻNE! Dołącza callbacki do RecycleView

Efekt

SharedPreferences Zapis prostych typów (int, float, double, string) do pliku Brak konieczności ręcznego odczytu danych (parsowania) Metoda zapisu: Klucz-Wartość Zalecane do zapisu małej ilości danych 34

SharedPreferences 35

SharedPreferences 36 MODE_PRIVATE MODE_WORLD_READABLE MODE_WORLD_WRITEABLE putInt, putLong, putBoolean, putStringSet, putFloat

Zapis i odczyt z pliku Gdzie możemy zapisać plik: Wewnętrzny magazyn (Internal storage) – pamięć wbudowana Zewnętrzny magazyn (External storage) – Karta SD Zawsze dostępnaNie zawsze dostępna Pliki zapisane przez naszą aplikację mogą być czytane domyślnie tylko przez nas Zapisane pliki są dostępne publicznie Podczas usuwania aplikacji usuwają się zawsze wszystkie zapisane pliki Pliki usuną się tylko jeśli zostały zapisane w ścieżce zwróconej przez getExternalFilesDir()

Zapis i odczyt z pliku w wewnętrznym magazynie ODCZYT ZAPIS MODE_PRIVATE – tryb domyślny MODE_APPEND – dopisanie MODE_WORLD_READABLE – mogą czytać inne aplikacje MODE_WORLD_WRITEABLE – mogą zapisywać inne aplikacje openFileOutput("mytextfile.txt", MODE_PRIVATE|MODE_APPEND); getFilesDir() – zwraca folder zapisu plików w magazynie Np. /data/user/0/[package]/files

Zapis i odczyt z pliku w zewnętrznym magazynie Uprawnienia do zapisu/odczytu w zewnętrznym magazynie \app\src\main\AndroidManifest.xml Czy w ogóle magazyn zewnętrzny istnieje?

Zapis i odczyt z pliku w zewnętrznym magazynie Nowy tryb bezpieczeństwa w Android 6 (API 23) wymaga manualnego poproszenia o przyznanie praw zapisu do zewnętrznego magazynu

Zapis i odczyt z pliku w zewnętrznym magazynie Zapis /storage/emulated/0 Metoda sprawdzająca czy użytkownik zezwolił na zapis

Zapis i odczyt z pliku w zewnętrznym magazynie Odczyt Metoda sprawdzająca czy użytkownik zezwolił na odczyt

Poprawne zarządzanie uprawnianiami w Androidzie 6 Metoda w Activity która otrzymuje odpowiedź (Response) Wzorzec Request/Response, w którym identyfikujemy żądania kodem (int) Sprawdzamy uprawniania aplikacji… Jeśli ich nie mamy (jeszcze) to prosimy o pozwolenie… Powinniśmy zawsze zareagować na odpowiedź użytkownika i wyłączyć część funkcjonalności, jeśli nie mamy prawa ich używać. W przeciwnym wypadku aplikacja wywoła wyjątek: permission denied