ponawigujmy troszkę – widget.Toolbar – #0B

Mamy listę obiadów – jeden wielki mock póki co. Mamy listę posiłków – tu już lepiej – ma podłączenie do bazy i nawet się wyświetlają prosto z bazy. Ale nie mamy przejścia pomiędzy nimi. Trzeba to naprawić. Wykorzystajmy do tego toolbar.

Po pierwsze w AndroidManifest.xml wyłączamy domyślny ActionBar wrzucając do sekcji application linijkę:

 android:theme="@style/Theme.AppCompat.Light.NoActionBar"

Chcę mieć layout toolbara do wielokrotnego wykorzystania, więc w katalogu /res/layout tworzę sobie nowy xml:

https://gist.github.com/jezinka/19491b77998149a8fbb623a2361f138b

i załączam go do xmla z głównego ekranu:

https://gist.github.com/jezinka/f3793296ae9001d5e8f85196d3c7885e

OK, xmle opanowane, czas zainicjować toolbary w MainActivity, w metodzie onCreate dorzucamy

https://gist.github.com/jezinka/faee8644c6a0e4ee1d54d636888d8e3b

Do menu chcemy dołożyć link, który umożliwi nam przeniesienie się do listy posiłków. No to wracamy do xmli. Tworzymy sobie nowy plik w /res/menu i umieszczamy tam menu i pierwszy link:

menu.png

Wracamy do MainActivity.java i czas dodać funkcje odpowiedzialne za wyświetlenie i obsługę kliknięcia przez użytkownika:

https://gist.github.com/jezinka/18aa9b2c84ef51e3e52ef6ed1e706842

W metodzie onCreateOptionsMenu robimy inflate na naszym xmlu. To da nam tyle, że aplikacja będzie wiedzieć, jakie elementy i o jakich id mamy w naszym xmlu. Przyda nam się to w metodzie onOptionsItemSelected gdzie mamy switch-case [sic!] po Id elementów. Jeśli dopasujemy kliknięty element do id, to odpalamy activity z ekranem MealList.

Czas na drugi ekran. Dołączamy toolbar do activity_meal_list.xml

https://gist.github.com/jezinka/3a9f92f2da26f6fa4d70223d9baf098b

Z MealListActivity chcemy mieć możliwość powrotu do ekranu głównego. Zainicjujmy toolbar i zróbmy powrót:

https://gist.github.com/jezinka/78dae2e2a68f84f5280e08303d50f359

wp-1490625914700.png

Kolejny mały kamyczek do aplikacji 🙂

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.