WSTĘP DO ANDROIDA Laboratorium 2 Systemy i aplikacje bez granic
I
I Tworzymy nowy projekt typu Empty Acvivity o nazwie FragmentExample
I Tworzymy nowy projekt typu Empty Acvivity o nazwie FragmentExample Rozwijamy gałąź app/res/layout i klikając prawym klawiszem dodajemy nowy Layout
I Tworzymy nowy projekt typu Empty Acvivity o nazwie FragmentExample Rozwijamy gałąź app/res/layout i klikając prawym klawiszem dodajemy nowy Layout
I
Nazywamy plik toolbar_layout I
I Nazywamy plik toolbar_layout Jako korzeń (root) ustawiamy RelativeLayout
I Nazywamy plik toolbar_layout Jako korzeń (root) ustawiamy RelativeLayout
IV
IV Edytujemy projekt https://pastebin.com/py6thq7p
IV Edytujemy projekt https://pastebin.com/py6thq7p
I
Dodajemy klasę do app/java I
Dodajemy klasę do app/java I
Dodajemy klasę do app/java I
I Dodajemy klasę do app/java W kodzie klasy dopisujemy dziedziczenie po klasie Fragment
I Dodajemy klasę do app/java W kodzie klasy dopisujemy dziedziczenie po klasie Fragment
I
Przeciążamy metodę oncreateview I
Przeciążamy metodę oncreateview I
I Przeciążamy metodę oncreateview Dodajemy interfejs wewnątrz klasy
I Przeciążamy metodę oncreateview Dodajemy interfejs wewnątrz klasy
I
Oraz dwa pola I
Oraz dwa pola I
I Oraz dwa pola Interfejs
I Oraz dwa pola Interfejs
I Oraz dwa pola Interfejs I metody
I Oraz dwa pola Interfejs I metody
I
I Analogicznie tworzymy drugi fragment o nazwie text_fragment
I Analogicznie tworzymy drugi fragment o nazwie text_fragment Projekt drugiego fragmentu
I Analogicznie tworzymy drugi fragment o nazwie text_fragment Projekt drugiego fragmentu
I Analogicznie tworzymy drugi fragment o nazwie text_fragment Projekt drugiego fragmentu
I
Kod drugiego fragmentu I
Kod drugiego fragmentu I
I
Wracamy do naszej głównej aktywności I
I Wracamy do naszej głównej aktywności Z grupy Layouts wrzucamy na nasz projekt <fragment>
I Wracamy do naszej głównej aktywności Z grupy Layouts wrzucamy na nasz projekt <fragment> Wybieramy z okienka ToolbarFragment
I Wracamy do naszej głównej aktywności Z grupy Layouts wrzucamy na nasz projekt <fragment> Wybieramy z okienka ToolbarFragment
I
I Po kliknięciu w przycisk błędów zobaczymy komunikat:
I Po kliknięciu w przycisk błędów zobaczymy komunikat:
I Po kliknięciu w przycisk błędów zobaczymy komunikat: Wybieramy to
I Po kliknięciu w przycisk błędów zobaczymy komunikat: Wybieramy to Podobnie dodajemy drugi fragment
I
I Nadajemy fragmentom id odpowiednio toolbarfragment i textfragment
I Nadajemy fragmentom id odpowiednio toolbarfragment i textfragment Nasz klasa musi zaimplementować interfejs ToolbarListener i mieć metodę onbuttonclick
I Nadajemy fragmentom id odpowiednio toolbarfragment i textfragment Nasz klasa musi zaimplementować interfejs ToolbarListener i mieć metodę onbuttonclick
I Nadajemy fragmentom id odpowiednio toolbarfragment i textfragment Nasz klasa musi zaimplementować interfejs ToolbarListener i mieć metodę onbuttonclick Uruchamiamy
II
II Tworzymy nowy projekt typu Empty Activity i nazywamy go FileAccess
II Tworzymy nowy projekt typu Empty Activity i nazywamy go FileAccess Do manifestu dodajemy linijkę
II Tworzymy nowy projekt typu Empty Activity i nazywamy go FileAccess Do manifestu dodajemy linijkę
II
Do projektu dodajemy nową klasę Contact II
Do projektu dodajemy nową klasę Contact II
II
II W naszej aktywności definiujemy 2 przyciski Button: Zapisz i Wczytaj
II W naszej aktywności definiujemy 2 przyciski Button: Zapisz i Wczytaj Definiujemy metody do ich obsługi saveclick i readclick
II W naszej aktywności definiujemy 2 przyciski Button: Zapisz i Wczytaj Definiujemy metody do ich obsługi saveclick i readclick
II
Dodajemy kod w klasie II
Dodajemy kod w klasie II
Dodajemy kod w klasie II
II
II
II
Uruchamiamy II
II Uruchamiamy Po operacji zapis/odczyt możemy podejrzeć plik w AndroidStudio za pomocą Device File Explorer
II
Przerabiamy kod na External Storage II
Przerabiamy kod na External Storage II
II
II
III
III Tworzymy nowy projekt typu Empty Activity o nazwie DatabaseExample
III Tworzymy nowy projekt typu Empty Activity o nazwie DatabaseExample Usuwamy wszystko z projektu interfejsu użytkownika i jako korzeń umieszczamy LinearLayout (vertical)
III Tworzymy nowy projekt typu Empty Activity o nazwie DatabaseExample Usuwamy wszystko z projektu interfejsu użytkownika i jako korzeń umieszczamy LinearLayout (vertical) Na drugim poziomie umieszczamy TableLayout, a poniżej LinearLayout (horizontal)
III Tworzymy nowy projekt typu Empty Activity o nazwie DatabaseExample Usuwamy wszystko z projektu interfejsu użytkownika i jako korzeń umieszczamy LinearLayout (vertical) Na drugim poziomie umieszczamy TableLayout, a poniżej LinearLayout (horizontal)
III
III W TableLayout mamy mieć 3 wiersze TableRow
III W TableLayout mamy mieć 3 wiersze TableRow W pierwszym wierszu mają znaleźć się 2 TextView obok siebie
III W TableLayout mamy mieć 3 wiersze TableRow W pierwszym wierszu mają znaleźć się 2 TextView obok siebie W drugim wierszu TextView i PlainText
III W TableLayout mamy mieć 3 wiersze TableRow W pierwszym wierszu mają znaleźć się 2 TextView obok siebie W drugim wierszu TextView i PlainText Podobnie w trzecim
III W TableLayout mamy mieć 3 wiersze TableRow W pierwszym wierszu mają znaleźć się 2 TextView obok siebie W drugim wierszu TextView i PlainText Podobnie w trzecim
III W TableLayout mamy mieć 3 wiersze TableRow W pierwszym wierszu mają znaleźć się 2 TextView obok siebie W drugim wierszu TextView i PlainText Podobnie w trzecim
III
III W dolnym LinearLayout umieszczamy 3 przyciski Button
III W dolnym LinearLayout umieszczamy 3 przyciski Button
III W dolnym LinearLayout umieszczamy 3 przyciski Button Nadajemy kontrolką nazwy, a przyciskom metody obsługi onclick: newproduct, removeproduct, lookupproduct
III
III
III
III
III
III
III
III
III Dodajemy do projektu klasę Product
III Dodajemy do projektu klasę Product
III
III Dodajemy kolejną klasę, dziedziczącą po klasie SQLiteOpenHelper
III Dodajemy kolejną klasę, dziedziczącą po klasie SQLiteOpenHelper
III Dodajemy kolejną klasę, dziedziczącą po klasie SQLiteOpenHelper Dodajemy wewnątrz companion object
III Dodajemy kolejną klasę, dziedziczącą po klasie SQLiteOpenHelper Dodajemy wewnątrz companion object
III
III Dodajemy metody do klasy
III Dodajemy metody do klasy
III
III
III
III
III
III W klasie aktywności dodajemy metody obsługi przycisków
III W klasie aktywności dodajemy metody obsługi przycisków
III
III
III
III
Uruchamiamy III
IV
IV Tworzymy nowy projekt typu Empty Acvivity o nazwie PermissionExample
IV Tworzymy nowy projekt typu Empty Acvivity o nazwie PermissionExample Dodajemy pole do klasy
IV Tworzymy nowy projekt typu Empty Acvivity o nazwie PermissionExample Dodajemy pole do klasy Dodajemy do klasy metodę setuppermissions i jej wywołanie w metodzie oncreate
IV Uruchamiamy i sprawdzamy LogCat Do manifestu dodajemy linijkę I uruchamiamy na emulatorze z systemem starszym niż 6 sprawdzając LogCat
IV Uruchamiamy teraz na emulatorze z systemem >= 6 i śledzimy LogCat Dodajemy drugie pole do klasy I metodę makerequest
IV Dodajemy drugą metodę - onrequestpermissionsresult
IV Uruchamiamy i sprawdzamy na starym i nowym systemie. Sprawdzamy działanie zarządzania uprawnieniami w emulatorze