Cel mai bun mod de a salva datele pentru o utilizare ulterioară?

Care este cel mai bun mod de a salva mai multe (aproximativ 80) câmpuri ca o singură entitate? Aplicația mea creează un obiect "program", care conține în sine aproximativ 75 de caractere într-o matrice, aproximativ 4 alte șiruri aleatorii și un singur câmp int. Vreau să le pot salva astfel încât utilizatorul să poată vizualiza informații de bază despre fiecare program într-un ListView, apoi să facă clic pe unul dintre ele pentru a vedea restul datelor.

Care este cel mai bun mod de salvare a acestora? M-am gândit să le salvez fiecare ca propriul lor fișier xml separat, dar am auzit și despre baze de date (deși pare puțin prea mult pentru ceea ce încerc să fac). Sau ar trebui să le salvez doar ca fișiere .txt obișnuite și să le analizez mai târziu? Sau poate salva chiar fiecare program într-un singur fișier txt/xml și le analizăm împreună? Sau există ceva chiar mai eficient decât lipsesc?

0

5 răspunsuri

Atâta timp cât nu creați o cantitate substanțială de obiecte, aș spune că Serializarea Obiectului și stocarea acestuia în acest fel ar fi suficientă. Dacă găsiți că creați un număr de aceste obiecte, vă sugeram să căutați o implementare a bazei de date pentru a le gestiona.

0
adăugat
Ei bine, în acest caz, serializarea nu este într-adevăr o opțiune potrivită, deoarece numărul obiectelor potențiale este imprevizibil. Aș spune că Serializarea este potrivită atunci când vine vorba despre un număr de aproximativ (dar nu luați acest număr ca orice tip de fapt, într-adevăr depinde de tipul de date și dacă numărul de obiecte este limitat) 1-10 . Orice altceva decât 10 aș considera a fi substanțial. Și faptul că obiectele pe care le-ați conține același tip și numărul de câmpuri face mult mai viabilă utilizarea unei baze de date SQLite sau a unui scriitor/parser XML.
adăugat autor shellström, sursa
Da, aceasta este o modalitate foarte simplă de a plasa structurile de date Java în spațiu de stocare persistent, fără a fi încurcat totul cu xml sau SQL.
adăugat autor David Given, sursa
Ce considerați "substanțiale"? Utilizatorul va putea să facă cât de mult doresc, așa că, din păcate, nu există nici o modalitate pe care o pot spune.
adăugat autor Michael, sursa

Ai putea să te uiți la ObjectOutputStream . Poate tipări un obiect care implementează interfața Serializabilă într-un fișier sau într-un alt flux.

Așadar, ați putea face ceva asemănător cu crearea unui ArrayList al acelor Strings și int și scrieți ArrayList într-un fișier.

0
adăugat

În cazul în care depozitați datele într-un fișier xml este cel mai bun mod. Baza de date SQLite poate fi utilizată pentru o activitate mai puternică.

0
adăugat
Modul în care datele mele sunt structurate, un fișier xml pare într-adevăr ca cel mai bun mod. Aveți vreo recomandare despre cum să faceți acest lucru, cum ar fi un anumit scriitor/parser XML?
adăugat autor Michael, sursa
Acest subiect ar ajuta. există o mulțime de moduri de a vă face munca. xml on android"> stackoverflow.com/questions/2290945/writing-xml-on-android
adăugat autor 113408, sursa

Dacă nu doriți să vă faceți griji cu privire la Cursor sau gestionarea bazelor de date pur și simplu utilizați SharedPreferences. Sunt obișnuit să serializez/deserializez obiectele mele folosind GSON , care este ușor de configurat și funcționează destul de bine.

0
adăugat

Depinde:

Dacă doriți ceva rapid - utilizați baza de date SQLite.

Dacă doriți ceva ușor de implementat (dar mai lent) - utilizați SharedPreferences .

0
adăugat
Android dezvoltatori, România — Moldova
Android dezvoltatori, România — Moldova
27 participanți

Parteneri: ciupacabra.com, @php_ro, @js_ro, @node_ro iOS: @ro_ios Reguli: https://github.com/js-ro/it-telegram/blob/master/RULES.md