ועל תיכנון אפליקציות בכללי.זה מאוד תלוי במימוש שלך של האפליקציה...
בקשר לserialize שהצעתי, הרעיון הוא כזה:
יש 2 חלקים, אחד הוא מסד הנתונים שלך, והשני הוא הגיבוי/שיחזור
בחלק הראשון, אתה מוסיף ומוריד "פתקים" רק מהarraylist
זה בעצם מסד הנתונים שלך, ומולו אתה "עובד", כל פעם שהמשתמש מוסיף פתק, אתה מוסיף אותו לarraylist, וכל פעם שהוא מוריד פתק אתה מוחק אותו משם.
החלק השני זה הגיבוי/שיחזור
בעצם הarray list "חי" רק בזמן שהאפליקציה רצה, ברגע שהיא נסגרת (גם לא בbackground) כל הנתונים נמחקים מהזיכרון ובפעם הבאה שאתה תפתח את האפליקציה הרשימה תהיה ריקה.
אז כדי למנוע את זה אתה צריך לגבות את הרשימה על קובץ במכשיר.
כדי לעשות את זה, הצורה הכי פשוטה זה להשתמש בserialize ולשמור לקובץ, תקרא קצת על serialize , וכדי לשמור לקובץ, תעשה משהו כזה:
try{ FileOutputStream fos= new FileOutputStream("myfile"); ObjectOutputStream oos= new ObjectOutputStream(fos); oos.writeObject(al); oos.close(); fos.close(); }catch(IOException ioe){ ioe.printStackTrace(); }
|
וכדי לקרוא מהקובץ, תעשה ככה:
ArrayList<String> arraylist= new ArrayList<String>(); try { FileInputStream fis = new FileInputStream("myfile"); ObjectInputStream ois = new ObjectInputStream(fis); arraylist = (ArrayList) ois.readObject(); ois.close(); fis.close(); }catch(IOException ioe){ ioe.printStackTrace(); return; }
|
את השמירה/קריאה תעשה בטעינה של המסך וביציאה ממנו (כמובן לא על הmain thread, כי זאת קריאה מקובץ)
@Crazy Lion@