Android-sprytniejszy sposob na dodawanie elementow do arrayList

0

Czesc!
Pisze sobie liste zakupow w androidzie i tworze tam listView, w ktorym chcialbym umiescic mozliwe produkty spozywcze do wybrania(np arbuzy,jajka ,zeszyty itd) , Kazdy produkt jest reprezentowany jako obiekt klasy Products, ktory umieszczam w arrayList i nastepnie przekazuje do adaptera listView.Robie to w tradycyjny sposob czyli arrayList.add(new Product("Arbuz")); ..... itd.Jak sie domyslacie tych elementow w liscie bedzie b. duzo stad moje pytanie czy jest jakis sprytniejszy sposob na dodatnie tego wszystkiego niz ten ktory napisalem powyzej?

Z gory dzieki za wszelkie sugestie!

0

Za pomocą pętli? Niemniej same produkty gdzieś musisz mieć, np. w bazie danych.

0

Acha czyli pozostaje mi po prostu murzynska praca i napisanie 200 linii kodu new Product("cos tam"). No nic nikt nie mowil ze programowanie to tylko ciekawe rzeczy :(

0

A tak swoja droga tworzenie listView z tyloma elementami nie bedzie mialo wplywu na moja aplikacje? Nie bedzie to jakos sie mulic? Nie chcialbym napisac tylu linii kodu zeby potem to usuwac, stad moje(byc moze nienajmadrzejsze pytanie)?

0

Sprytniejszy sposób to taki, żeby użytkownicy wypełniali za ciebie tą bazę produktów. 200 produktów wklepanych na stałe to porażka - dla ciebie to może dużo, ale ja mogę mieć swoją listę 200 innych i co wtedy?. Do tego przydały by się kategorie - nie koniecznie przyda mi się lista zakupowa z arbuzami jak jestem w papierniczym itp. poza tym jakie jeszcze informacje chcesz przechowywać o produkcie oprócz samej nazwy? Przemyśl sobie dobrze projekt zanim zaczniesz coś pisać.

0

Po prostu beda dwa sposoby tworzenie listy: jeden poprzez wcisniecie przycisku dodaj i uzupelnienie danych o nazwie produktu ilosci itd a drugi poprzez wybor produktow z listy, chcialem tez to podzielic na kategorie ale wtedy bym musial chyba tworzyc odzielne activity dla kazdej kategorii np owoce, warzywa itd? Poza tym czy wtedy nie musialbym umiescic w activity gdzie bede wyswietlal swoja liste zakupow kilka listView w zaleznosci od ilosci kategorii? Chyba ze znacie jakis lepszy sposob zeby to zrobic.

0

A jak chcesz zapisywać to co wpisze user? Musisz to mieć i tak w jakiejś bazie danych, więc nie klep tego kodu teraz bo to nie ma sensu. Wrzuc te dane do bazy.

0

Acha no i jeszcze co oczywiste bedziesz mogl stowrzyc liste zakupow wybierajac produkty z listView a nastpenie jesli jakiegos na tym listView nie bedzie wcisnac dodaj no i wtedy do listy zakupow zostanie dodany ten produkt ktory Cie intersuje

No moja idea byla taka ze po tym jak stworzysz juz sobie liste zakupow to bedziesz mogl wcisnac zapisz i wtedy lista zakupow zostanie dodana do bazy

Bo ogolnie chcialem dodac jeszcze taka funkcjonalnosc zeby zapamietywalo Ci utworzone przez ciebie listy zakupow i zebys mogl je potem wczytac

0
  1. Ale nie lepiej od razu dodawać te produkty do bazy danych? To dwa razy więcej roboty przecież - bo musisz dodać do listy a później do bazy danych.
  2. No przecież baza danych zapamięta te listy zakupów - mógłbyś zrobić tak że podczas uruchomienia aplikacji wczytywać wszystkie produkty użytkownika.
0

Nie wiem czy dobrze Cie zrozumialem i czy Ty dobrze rozumiesz moja idee wiec dopytam, dla mnie lista zakupow to np:
1)lista
Pomidory
Ogorki
Zeszyt

2)lista
Pomidory
Melon
Cytryna.

Wymyslilem sobie to tak ze wszystkie te dane bede przechowywal w arrayList<Product>(gdzie produkt to stworzona przeze mnie klasa produktow) i cala taka arrayListe chce moc zapisywac/wczytywac z bazy danych.
Z kolei ty mi proponujesz zebym kazdy produkt od razu zapisywal do bazy danych tak?Jak w takim razie pozniej te produkty rozroznic pod takim katem ze np to sa pomidory z listy nr 1 a to pomidory z listy numer 2?

Ja chcialem zrobic to tak ze lista bedzie zapisywana do bazy w nowej tabeli, ktora bedzie tworzona z nazwa taka jak podoba uzytkownic przy zapisywaniu i analogicznie pozniej tak wczytywana

1

Proponuje żebyś zaczął od nauki podstaw baz danych, bo to co teraz piszesz o tworzeniu nowych tabel albo o problemie z zapisaniem listy w bazie to są takie bzdury że po prostu szok i niedowierzanie ;]

0

No ok a mozesz w takim razie napisac mi co jest z moim mysleniem nie tak? No nie przecze ze mam mala wiedze na ten temat, ale tez co jest zlego w tym zeby kazda moja liste zakupow zapisywac w nowej tabeli w bazie?

0

Jak już wprowadzisz dane do bazy danych to potem będziesz sobie mógł tą swoją arrayListę uzupełniać danymi z bazy danych.
Jak to mówią "z pustego to i salomon nie naleje" więc czeka Cię żmudny proces tworzenia bazy danych lub mogą to za Ciebie zrobić inni użytkownicy.

0

Akurat klase do obslugi bazy danych w sqlite3 sobie napisalem, tak wiec wszystkie swoje obiekty klasy product najpierw umieszcam w bazie danych a dopiero potem sie zajmuje wyswietlaniem ich w listview i innymi tego typu historiami?

0

Tak, tak to działa.

1

@kdmrulez bo to co piszesz to jest jakis WTF, inaczej nie mozna tego nazwać. W normalnej bazie danych to wyglądaloby tak:

  • masz tabelę obiekty w której masz te różne cuda do wyboru
  • masz tabelę listy gdzie przechowujesz meta-date na temat list (np. nazwa listy etc)
  • masz tabelę łącznikową która przechowuje ID listy oraz ID obiektu z tej listy.
    W ten sposób wybranie rzeczy z listy numer 1 to po prostu select obiekty.nazwa from obiekty inner join obiekty_listy on obiekty.id = obiekty_listy.obiekty_id where obiekty_listy.listy_id = 1
0

Spoko, wiem ze to co pisze jest WTF i ogolnie dzieki za pomoc , w zaden sposob nie biore tego do siebie. Prawde mowiac ta moja klasa tworzaca baze danych jak na nia patrze po tym co napisalem to rzeczywiscie daje d**y troche. Zaraz zajme sie poprawianiem tego i wrzuce to co wymysle do oceny

2

arrayList.add(new Product("Arbuz"));
(...)
czy jest jakis sprytniejszy sposob na dodatnie tego wszystkiego niz ten ktory napisalem powyzej?

void lol(String name) {
  arrayList.add(new Product(name));
}

...
lol("Arbuz");
lol("Jabłko");
lol("Wiśnia");
...

:]

0

Tak to jest sprytniejsze,dzieki:)

1 użytkowników online, w tym zalogowanych: 0, gości: 1