Programowanie aplikacji mobilnych

Transkrypt

Programowanie aplikacji mobilnych
Programowanie aplikacji mobilnych
dr Przemysław Juszczuk
Katedra Inżynierii Wiedzy
laborki 3
dr Przemysław Juszczuk
Programowanie aplikacji mobilnych
Rysunek: Tworzymy projekt
dr Przemysław Juszczuk
Programowanie aplikacji mobilnych
Rysunek: Tworzymy projekt
dr Przemysław Juszczuk
Programowanie aplikacji mobilnych
Tworzenie GUI
szybki sposób - ustawiamy kontrolki tak, aby łącznie uzyskać 9
przycisków typu ToggleButton oraz 3 kontrolki tekstowe (np.
TextView) u góry oraz 3 kontrolki - uwaga, w przypadku
RelativeLayout kontrolki są ustawione względem boku ekranu lub np.
względem siebie - nie możemy przesuwać pojedynczych kontrolek;
wolny sposób - tworzymy zestaw pojemników, do których
przypisujemy poszczególne elementy - w naszym przypadku będą to
3 pojemniki LinearLayout. Pierwszy u góry(największy) będzie
zawierał wszystkie podstawowe elementy: przyciski ToggleButton
oraz TextView. Środkowy LinearLayout będzie zawierał przyciski
menu, natomiast dolny będzie pusty. (plik xml do pobrania ze
strony).
dr Przemysław Juszczuk
Programowanie aplikacji mobilnych
Rysunek: Ustalamy LinearLayout
dr Przemysław Juszczuk
Programowanie aplikacji mobilnych
Rysunek: W pliku java tworzymy przyciski klasy ToggleButton (pamiętamu o
importowaniu ToggleButton import android.widget.ToggleButton;)
dr Przemysław Juszczuk
Programowanie aplikacji mobilnych
Rysunek: Oraz 6 kontrolek TextView (3 dla wierszy oraz 3 dla kolumn) do
wyświetlania liczby ”włączonych” pól odpowiednio w kolumnie i wierszu
dr Przemysław Juszczuk
Programowanie aplikacji mobilnych
Rysunek: W metodzie onCreate przypisujemy obiektom klasy ToggleBotton
konkretne elementy z pliku XML (rzutujemy na obiekty klasy ToggleButton)
dr Przemysław Juszczuk
Programowanie aplikacji mobilnych
Rysunek: Analogicznie postępujemy z kontrolkami klasy TextView
dr Przemysław Juszczuk
Programowanie aplikacji mobilnych
Rysunek: Dodajemy przyciski Menu: Poziom 1, Poziom 2, Restart oraz
Koniec(sprawdzenie)
dr Przemysław Juszczuk
Programowanie aplikacji mobilnych
Rysunek: Do pliku Java dopisujemy obiekty klasy Button (poniżej obiektów
klasy TextView)
dr Przemysław Juszczuk
Programowanie aplikacji mobilnych
Rysunek: Rzutowanie elementów z pliku XML na obiekty w pliku Java
dr Przemysław Juszczuk
Programowanie aplikacji mobilnych
Rysunek: W głównej klasie pliku Java tworzymy 4 dodatkowe metody, które
powiązane będą z przyciskami: Poziom 1, Poziom 2, Restart oraz Koniec
dr Przemysław Juszczuk
Programowanie aplikacji mobilnych
Rysunek: Dla każdego z przycisków z powyższego slajdu w oknie Properties w
polu onClick przypisujemy odpowiednią metodę
dr Przemysław Juszczuk
Programowanie aplikacji mobilnych
Rysunek: Dodajmy zmienną opisującą każdy poziom
Pomysł jest taki, aby w pojedynczym łańcuchu znaków ”1:1 1:3:2:1 1:2”
przechowywać dane dotyczące poziomu. Łańcuch składa się z 6 części
oddzielonych dwukropkiem. Pierwsza część, to informacje o ułożeniu
kratek w pierwszym wierszu, druga część odpowiada drugiemu wierszowi,
czwarta część to pierwsza kolumna, piąta część - piąta kolumna.
dr Przemysław Juszczuk
Programowanie aplikacji mobilnych
Rysunek: Przygotowujemy definicję metody odpowiedzialnej za wczytanie
danych dotyczących poziomu 1 (i analogicznie 2)
metoda split umożliwia podzielenie łańcucha znaków, gdzie
separatorem jest element przekazany jako parametr tej metody (w
naszym przypadku bedzie to ”:”);
nie zajmujemy się wyrównaniem tekstu, zatem po wczytaniu danych
do odpowiednich elementów TextView całość może się nieco
”rozjechać”. Możemy wyrównać położenie tych elementów dodając
dodatkowe symbole (np. spacji) przed liczbami, zatem nasz kod
wyglądałby następująco: kolumna2.setText(” ” + temp[4]);
dr Przemysław Juszczuk
Programowanie aplikacji mobilnych
Rysunek: Metoda Restart
Metoda ustawiająca wszystkie przyciski typu Toggle w stan ”off’.
Wystarczy, że dla każdego przycisku sprawdzimy jego aktualny stan: jeżeli
jest wciśnięty, to wywołujemy metodę Toggle, która zmienia bieżący stan
na przeciwny. Operację powtarzamy dla każdego przycisku.
dr Przemysław Juszczuk
Programowanie aplikacji mobilnych
Rysunek: Metoda Restart
Dodajmy do naszego kodu 2 zmienne odpowiedzialne za sprawdzenie,
który poziom aktualnie jest aktywny - zmienne typu boolean.
dr Przemysław Juszczuk
Programowanie aplikacji mobilnych
Rysunek: Metoda Restart
W metodach odpowiedzialnych za załadowanie poziomu dodajmy również
informację, który poziom aktualnie został wybrany.
dr Przemysław Juszczuk
Programowanie aplikacji mobilnych
Rysunek: Metoda Restart
Żeby ułatwić sobie sprawdzenie, czy poziom został rozwiązany poprawnie
- dodamy w kodzie dodatkowe zmienne reprezentujące rozwiązanie w
postaci łańcucha znaków. W naszym przypadku 010101111 dla poziomu
pierwszego oznacza, iż w pierwszym wierszu mamy 010, czyli tylko drugi
przycisk jest przełączony, w kolejnym wierszu następne 3 elementy, czyli
101, a zatem pierwszy i trzeci przycisk, wreszcie w ostatnim wierszu 111,
a więc wszystkie trzy przyciski włączone.
dr Przemysław Juszczuk
Programowanie aplikacji mobilnych
Rysunek: Metoda Sprawdź
Ostatni etap, to utworzenie łańcucha składającego się z zer i jedynek na
podstawie przycisków ToggleButton. Zakładamy, że włączony przycisk
oznacza jedynkę, natomiast wyłączony - zero. Na rys. przedstawiono
fragment kodu dla dwóch pierwszych przycisków.
dr Przemysław Juszczuk
Programowanie aplikacji mobilnych
Rysunek: Metoda Sprawdź
Ostatni etap, to sprawdzenie, który poziom aktualnie jest wybrany
(zmienna typu boolean), następnie przyrównanie łańcucha zer i jedynek
ze wzorcem opisującym dany poziom (utworzony 2 slajdy wcześniej).
Jeżeli porównanie wypadło pomyślnie, to układ przycisków ToggleButton
odpowiada wzorcowi i poziom uznajemy za ukończony.
dr Przemysław Juszczuk
Programowanie aplikacji mobilnych