views:

102

answers:

2

I want to save an ArrayList so that it is persistent. The contents can change. What is the best way of approaching this in android?

+2  A: 

I am not familiar with Android SDK, but I am with Java. One thing you can easily do is serialize the ArrayList. Then when you read it again, it'll be an ArrayList object which you can readily use as if you had just created it.

Jorge Israel Peña
Intro to Java Serialization: http://java.sun.com/developer/technicalArticles/Programming/serialization/
Fabian Steeg
Please don't serialize. Use a database or the sharedpreference
Falmarri
can you explain serialization vs db/sharedpref?
Sheehan Alam
+3  A: 

Your question is akin to asking "I have this bag of stuff -- should I transfer the stuff to a box, bucket, barrel, or bin?".

Without knowing what the "stuff" is, we cannot easily answer the question.

Your general options are either to use a database (perhaps actually getting rid of the ArrayList in the first place) or persistence to a file (serialization, XML, JSON, etc.).

Generally speaking, a SQLite database has advantages, in that is uses transactions and will be generally more robust than just writing your own file. However, there are things your ArrayList might store that might not work well in a database. Of course, there are things your ArrayList might store that might not even be able to be persisted at all (e.g., a socket, a widget).

CommonsWare
Sheehan Alam