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