Close

Dodajmy składniki – showIngredientPickerDialog – #16

Wymyśliłam sobie, że przy dodawaniu składników do posiłku, te składniki, które już są przypisane do danego posiłku mają mieć domyślnie zaznaczonego checkboxa… to sobie wymyśliłam…

Na początek potrzebowałam stworzyć zapytanie sql… szkoda, że pomimo wielu prób nie udało mi się skopiować bazy danych z telefonu i otworzyć jej w jakimś managerze bazy danych. Dobrze, że mam prostą strukturę, którą mogłam odtworzyć w SQLFiddle. Na ten moment query wygląda tak:

W niedalekiej przyszłości planuję stworzyć jakiś sql builder, bo nie chcę przechowywać aż tak zahardkodowanej struktury, a zwykła podmiana nazw tabelek na zmiennie wygląda tragicznie…

Żeby móc dobrać się do checkboxów na liście musiałam stworzyć własny xml zawierający rekord z listView:

Potrzebowałam ułożyć obok siebie dwa komponenty i jednocześnie miało być to użyte w dwóch widokach różniących się szerokością, więc użyłam PercentRelativeLayout. Dzięki temu ładnie się dopasowuje niezależnie od szerokości komponentu. Żeby użyć tego layoutu do build.gradle trzeba dorzucić dodatkową linijkę:

Poza stworzeniem xml-a musiałam jeszcze podpiąć listenery. Tu pojawiły się dwa problemy. XML-a ładowałam w adapterze, to też było jedyne miejsce gdzie mogłam podpiąć zdarzenia na onClick, a jednocześnie potrzebowałam dwóch różnych reakcji w zależności od widoku, który wyzwolił akcję. Na szczęście wszystko udało się rozwiązać. W adapterze ustawiłam taką obsługę zdarzeń:

Takie podejście pozwala przekazać zdarzenie do elementu nadrzędnego – w moim przypadku do listView i oprogramować je dla każdego widoku osobno 🙂

Małe niewyraźne demo jak to wygląda teraz:

output_yKyWpj.gif

 

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: