WSTĘP DO ANDROIDA Laboratorium
I
Uruchomić Android Studio I
I Uruchomić Android Studio Stworzyć projekt typu Empty Activity
I Uruchomić Android Studio Stworzyć projekt typu Empty Activity Zapoznać się z projektantem widoku (activity_main.xml)
I Uruchomić Android Studio Stworzyć projekt typu Empty Activity Zapoznać się z projektantem widoku (activity_main.xml) i kodem klasy sterującej widokiem (MainActivity.kt)
II
Stworzyć projekt typu Basic Activity II
II Stworzyć projekt typu Basic Activity Usunąć z projektu TextView i wstawić w to miejsce Plain Text
II Stworzyć projekt typu Basic Activity Usunąć z projektu TextView i wstawić w to miejsce Plain Text Zmienić atrybut inputtype na wartość text
II Stworzyć projekt typu Basic Activity Usunąć z projektu TextView i wstawić w to miejsce Plain Text Zmienić atrybut inputtype na wartość text Usunąć Name z atrybutu text
II
Dodać do klasy import android.util.log II
II Dodać do klasy import android.util.log W klasie zdefiniować stałą val TAG = "StateChange"
II Dodać do klasy import android.util.log W klasie zdefiniować stałą val TAG = "StateChange" Na koniec metody oncreate dodać instrukcję Log.i(TAG, oncreate")
II Dodać do klasy import android.util.log W klasie zdefiniować stałą val TAG = "StateChange" Na koniec metody oncreate dodać instrukcję Log.i(TAG, oncreate") Uruchomić program
II
II Przeciążyć wszystkie pozostałe metody typu on (onrestart, onstart, onresume, onpause, onstop, ondestroy, onconfigurationchanged, onrestoreinstancestate, on SaveInstanceState) dodając do logu odpowiedni komunikat
II Przeciążyć wszystkie pozostałe metody typu on (onrestart, onstart, onresume, onpause, onstop, ondestroy, onconfigurationchanged, onrestoreinstancestate, on SaveInstanceState) dodając do logu odpowiedni komunikat Uruchamiać program testując czas życia aplikacji (uruchomienie, zawieszenie, przywrócenie, zabicie, zmiana konfiguracji)
III
III Stworzyć nowy projekt pt. Layout Example z szablonu Add No Activity
III Stworzyć nowy projekt pt. Layout Example z szablonu Add No Activity Rozwinąć projekt do węzła app/java/*.layoutexample
III Stworzyć nowy projekt pt. Layout Example z szablonu Add No Activity Rozwinąć projekt do węzła app/java/*.layoutexample Kliknąć prawym klawiszem i wybrać New/Activity/ EmptyActivity
III Stworzyć nowy projekt pt. Layout Example z szablonu Add No Activity Rozwinąć projekt do węzła app/java/*.layoutexample Kliknąć prawym klawiszem i wybrać New/Activity/ EmptyActivity Nazwać ją LayoutSample i dodać do projektu
III
III Otworzyć app/manifests/androidmanifest.xml
III Otworzyć app/manifests/androidmanifest.xml Dopisać do Activity
III Otworzyć app/manifests/androidmanifest.xml Dopisać do Activity
III
III Ściągnąć obrazek su22.png (https://tinyurl.com/ycrdmfka)
III Ściągnąć obrazek su22.png (https://tinyurl.com/ycrdmfka) Dodać go do folderu app/res/drawable
III Ściągnąć obrazek su22.png (https://tinyurl.com/ycrdmfka) Dodać go do folderu app/res/drawable Dodać na środku widoku ImageView i wskazać dodany wcześniej obrazek
III Ściągnąć obrazek su22.png (https://tinyurl.com/ycrdmfka) Dodać go do folderu app/res/drawable Dodać na środku widoku ImageView i wskazać dodany wcześniej obrazek Nad ImageView dodać TextView. Ustawić tekst na wycentrowany, 24p, tekst= SU-22
III
III Poniżej ImageView dodać obok siebie 2 przyciski Button: Dane Historia Uruchomić
III Poniżej ImageView dodać obok siebie 2 przyciski Button: Dane Historia Uruchomić
III
III Dodajemy ograniczenia dla TextView
III Dodajemy ograniczenia dla TextView
III Dodajemy ograniczenia dla TextView
III Dodajemy ograniczenia dla TextView Dla ImageView
III Dodajemy ograniczenia dla TextView Dla ImageView
III Dodajemy ograniczenia dla TextView Dla ImageView
III
I dla przycisków III
III I dla przycisków Najpierw zaznaczamy je razem (Shift+Click)
III I dla przycisków Najpierw zaznaczamy je razem (Shift+Click) Potem robimy RightClick i wybieramy Chain\Create Horizontal Chain
III I dla przycisków Najpierw zaznaczamy je razem (Shift+Click) Potem robimy RightClick i wybieramy Chain\Create Horizontal Chain Na koniec odstęp od dołu ekranu
III I dla przycisków Najpierw zaznaczamy je razem (Shift+Click) Potem robimy RightClick i wybieramy Chain\Create Horizontal Chain Na koniec odstęp od dołu ekranu
IV
IV Utworzyć nowy projekt typu Empty Activity
IV Utworzyć nowy projekt typu Empty Activity Pod napisem Hello World dodać przycisk Button
IV Utworzyć nowy projekt typu Empty Activity Pod napisem Hello World dodać przycisk Button
IV Utworzyć nowy projekt typu Empty Activity Pod napisem Hello World dodać przycisk Button Zmienić id TextView na statustext
IV Utworzyć nowy projekt typu Empty Activity Pod napisem Hello World dodać przycisk Button Zmienić id TextView na statustext i przycisku na pressmebutton
IV
IV W klasie widoku musimy dodać import na projekt
IV W klasie widoku musimy dodać import na projekt
IV W klasie widoku musimy dodać import na projekt oraz obsługę zdarzenia
IV W klasie widoku musimy dodać import na projekt oraz obsługę zdarzenia
IV W klasie widoku musimy dodać import na projekt oraz obsługę zdarzenia Uruchomić
IV W klasie widoku musimy dodać import na projekt oraz obsługę zdarzenia Uruchomić Możemy jeszcze dodać
IV W klasie widoku musimy dodać import na projekt oraz obsługę zdarzenia Uruchomić Możemy jeszcze dodać
V
V Tworzymy nowy projekt typu Empty Activity
V Tworzymy nowy projekt typu Empty Activity Poniżej Text View wstawiamy przycisk Button
V Tworzymy nowy projekt typu Empty Activity Poniżej Text View wstawiamy przycisk Button Tekst zmieniamy mu na Uruchom a id na mybutton i wciskamy symbol
V Tworzymy nowy projekt typu Empty Activity Poniżej Text View wstawiamy przycisk Button Tekst zmieniamy mu na Uruchom a id na mybutton i wciskamy symbol Text View zmieniamy id na statustext
V
V W atrybucie onclick przycisku wpisujemy mybuttonclick
V W atrybucie onclick przycisku wpisujemy mybuttonclick
V W atrybucie onclick przycisku wpisujemy mybuttonclick W kodzie klasy aktywności dodajemy metodę mybuttonclick
V W atrybucie onclick przycisku wpisujemy mybuttonclick W kodzie klasy aktywności dodajemy metodę mybuttonclick
V
Do klasy dodajemy pole V
Do klasy dodajemy pole V
V Do klasy dodajemy pole Do projektu dodajemy nową aktywność Second Activity typu Empty Activity
V Do klasy dodajemy pole Do projektu dodajemy nową aktywność Second Activity typu Empty Activity Wstawiamy do niej Text View o id statustext
V
V W MainActivity dodajemy metodę:
V W MainActivity dodajemy metodę:
V W MainActivity dodajemy metodę: A w SecondActivity dodajemy do oncreate
V W MainActivity dodajemy metodę: A w SecondActivity dodajemy do oncreate
V
V W SecondActivity dodajemy metodę:
V W SecondActivity dodajemy metodę:
V W SecondActivity dodajemy metodę: A w MainActivity:
V W SecondActivity dodajemy metodę: A w MainActivity:
V
Uruchamiamy V
V Uruchamiamy Do MainActivity dodajemy metodę:
V Uruchamiamy Do MainActivity dodajemy metodę:
V Uruchamiamy Do MainActivity dodajemy metodę: I podmieniamy jej wywołanie w obsłudze przycisku
VI
VI Tworzymy nowy projekt typu Empty Actvitiy i dodajemy do niego 1 przycisk
VI Tworzymy nowy projekt typu Empty Actvitiy i dodajemy do niego 1 przycisk W metodzie obsługi klawisza umieścić kod i uruchomić
VI Tworzymy nowy projekt typu Empty Actvitiy i dodajemy do niego 1 przycisk W metodzie obsługi klawisza umieścić kod i uruchomić
VI
Uaktualnić importy: VI
Uaktualnić importy: VI
VI Uaktualnić importy: Dodać 2 pola w klasie aktywności:
VI Uaktualnić importy: Dodać 2 pola w klasie aktywności:
VI
VI Dodać wewnętrzną klasę do aktywności
VI Dodać wewnętrzną klasę do aktywności
VI
VI Zmienić metodę obsługi przycisku
VI Zmienić metodę obsługi przycisku
VII
VII Tworzymy nowy projekt typu Empty Activity i nazywamy go FileAccess
VII Tworzymy nowy projekt typu Empty Activity i nazywamy go FileAccess Do manifestu dodajemy linijkę
VII Tworzymy nowy projekt typu Empty Activity i nazywamy go FileAccess Do manifestu dodajemy linijkę
VII
VII Do projektu dodajemy nową klasę Contact
VII Do projektu dodajemy nową klasę Contact
VII
VII W naszej aktywności definiujemy 2 przyciski Button: Zapisz i Wczytaj
VII W naszej aktywności definiujemy 2 przyciski Button: Zapisz i Wczytaj Definiujemy metody do ich obsługi saveclick i readclick
VII W naszej aktywności definiujemy 2 przyciski Button: Zapisz i Wczytaj Definiujemy metody do ich obsługi saveclick i readclick
VII
Dodajemy kod w klasie VII
Dodajemy kod w klasie VII
Dodajemy kod w klasie VII
VII
VII
VII
Uruchamiamy VII
VII Uruchamiamy Po operacji zapis/odczyt możemy podejrzeć plik w AndroidStudio za pomocą Device File Explorer
VII
VII Przerabiamy kod na External Storage
VII Przerabiamy kod na External Storage
VII
VII
VIII
VIII Tworzymy nowy projekt typu Empty Activity o nazwie DatabaseExample
VIII Tworzymy nowy projekt typu Empty Activity o nazwie DatabaseExample Usuwamy wszystko z projektu interfejsu użytkownika i jako korzeń umieszczamy LinearLayout (vertical)
VIII 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)
VIII 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)
VIII
VIII W TableLayout mamy mieć 3 wiersze TableRow
VIII W TableLayout mamy mieć 3 wiersze TableRow W pierwszym wierszu mają znaleźć się 2 TextView obok siebie
VIII W TableLayout mamy mieć 3 wiersze TableRow W pierwszym wierszu mają znaleźć się 2 TextView obok siebie W drugim wierszu TextView i PlainText
VIII 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
VIII 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
VIII 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
VIII
VIII W dolnym LinearLayout umieszczamy 3 przyciski Button
VIII W dolnym LinearLayout umieszczamy 3 przyciski Button
VIII W dolnym LinearLayout umieszczamy 3 przyciski Button Nadajemy kontrolką nazwy, a przyciskom metody obsługi onclick: newproduct, removeproduct, lookupproduct
III
III
VIII
VIII
VIII
VIII
VIII
VIII
VIII Dodajemy do projektu klasę Product
VIII Dodajemy do projektu klasę Product
VIII
VIII Dodajemy kolejną klasę, dziedziczącą po klasie SQLiteOpenHelper
VIII Dodajemy kolejną klasę, dziedziczącą po klasie SQLiteOpenHelper
VIII Dodajemy kolejną klasę, dziedziczącą po klasie SQLiteOpenHelper Dodajemy wewnątrz companion object
VIII Dodajemy kolejną klasę, dziedziczącą po klasie SQLiteOpenHelper Dodajemy wewnątrz companion object
VIII
VIII Dodajemy metody do klasy
VIII Dodajemy metody do klasy
VIII
VIII
VIII
VIII
VIII
VIII W klasie aktywności dodajemy metody obsługi przycisków
VIII W klasie aktywności dodajemy metody obsługi przycisków
VIII
VIII
VIII
VIII
Uruchamiamy VIII
IX
IX Tworzymy nowy projekt typu Empty Acvivity o nazwie PermissionExample
IX Tworzymy nowy projekt typu Empty Acvivity o nazwie PermissionExample Dodajemy pole do klasy
IX 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
IX Uruchamiamy i sprawdzamy LogCat Do manifestu dodajemy linijkę I uruchamiamy na emulatorze z systemem starszym niż 6 sprawdzając LogCat
IX Uruchamiamy teraz na emulatorze z systemem >= 6 i śledzimy LogCat Dodajemy drugie pole do klasy I metodę makerequest
IX Dodajemy drugą metodę - onrequestpermissionsresult
IX Uruchamiamy i sprawdzamy na starym i nowym systemie. Sprawdzamy działanie zarządzania uprawnieniami w emulatorze