Close

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ą):

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).

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.

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

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

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: