wejściowy ekran – BaseExpandableListAdapter – #11

Czyżby to już był półmetek DSP? Bo ja dopiero wejściowy ekran zakodowałam 😉

No może gdybym lepiej to obmyśliła, to nie musiałabym przez kilka tygodni trzymać na głównym ekranie czegoś co było jednym, wielkim mockiem. Ale już jest i działa.

wp-1491982880600.

Myślałam na początku, że zrobienie kolejnego adaptera to będzie takie bardziej kopiuj-wklej z poprzedniego, ale ostatecznie doszłam do wniosku, że nie ma co powielać rozwiązań skoro chciałabym z tego projektu wyciągnąć jak najwięcej i udało mi się stworzyć listę, która ładnie grupuje nam dania po dacie. Z tym ładnie, to się jeszcze zastanawiam, bo kod, który grupuje mi się nie podoba (to nie Java 8, żeby zrobić to lambdą):

https://gist.github.com/jezinka/945db36d2666420a3bc606c401ddd769

Wybrałam użycie TreeMap zamiast zwykłego HashMap, bo zależało mi na tym, żeby mieć posortowane klucze. Tracę na szybkości obsługi, ale priorytetem było to żeby daty były po kolei.

Cały koda adaptera na gicie.

Lista poza rozwijaniem poziomów obsługuje jeszcze przytrzymanie na nazwie grupy (pokazuje okienko dodawania z ustawioną datą – wziętą z grupy).

https://gist.github.com/jezinka/6bf26c3ef7985656418df85ff1dfe3b0

Ta funkcja sprawiła, że musiałam trochę pogoogle’ać, bo jeśli jakieś elementy w liście były rozwinięte, to position nie pokazywało już pozycji grupy, tylko bardziej jej pozycję względem wszystkich widocznych (rozwiniętych) elementów na liście. Co przy przytrzymaniu ostatniego elementu na liście wyrzucało wyjątek, bo próbowałam się dostać do elementu spoza listy, ale nie ma takiego błędu, którego by stack overflow nie rozwiązał 😉

wp-1491994359671.

Z kolei kliknięcie na rozwiniętym dziecku pokazuje menu z opcją dodania kolejnego posiłku, usunięciem klikniętego i zmianą daty.

wp-1491994377308.

https://gist.github.com/jezinka/9ba6d78861ea750303b18f1beac02a07

Tutaj ciekawostką jest użycie zamiast deklaracji tablicy Stringów – resources

R.array.dinner_child_actions

deklaracja tej listy to xml ukryty w folderze res/values/arrays.xml

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

Pozostaje pytanie co dalej? mam dwie opcje: mogę wziąć się za kolejną tabelkę (składniki) albo mogę ogarnąć ustawienia użytkownika, żeby wyświetlanie spisu na 7 dni i soboty jako pierwszego dnia nie było zahardkodowane. Ta druga opcja kusi, bo to coś zupełnie nowego. Zobaczymy 🙂

0 thoughts on “wejściowy ekran – BaseExpandableListAdapter – #11

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.