2011-01-12 19 views
10

tengo una función básica que requiere serialización en mi aplicación de Android. El usuario agregará algunos valores a ArrayList y quiero serializarlo para evitar el uso de una base de datos para esta pequeña opción y, por supuesto, PARA APRENDER a serializar (soy principiante) porque me parece útil. De todos modos, el usuario guarda algo en el arraylist, el programa se apaga, el programa se inicia nuevamente y el usuario puede ver los datos guardados. ¿Cómo puedo implementar esto? ¿Puedes proporcionar algún fragmento de código o un enlace útil?cómo serializar ArrayList en android

Muchas gracias!

+1

Debe ser lo mismo, http://stackoverflow.com/questions/3588932/problem-serializing-and-deserializing-arraylist, luego debe escribir en la tarjeta SD desde allí. – Xorlev

+0

Después de serializar, ¿dónde exactamente quiere guardar las cosas? Opciones incluidas: Preferencia, Db (que usted rechazó), Directly to File system. – xandy

+0

Lo más fácil es serializarlo en el sistema de archivos de la tarjeta SD. – chubbsondubs

Respuesta

12

Usted puede hacer esto mediante la clase de bean personalizada e implementar Serializable a que por lo que ahora cuando se crea ArrayList<E> de ese clase es Serializable.

Ejemplo:

Class dataBean implements Serializable 
{ 
    public String name; 
} 

ArrayList<dataBean> dataBeanArrayList = new ArrayList(); 

Entonces dataBeanArrayList ahora es Serializable y también puede pasar esto entre Intent.

+0

Gracias @Megha! –

0

Sugiero usar flexjson para serializar los datos en un archivo. Entonces puedes leer eso de vuelta usando esa biblioteca. Esto tiene varias ventajas sobre la serialización que es poder cargar su flujo de vuelta en posibles versiones diferentes de sus objetos. Usando ObjectInputStream tienes que tener mucho cuidado, y francamente nunca lo he visto funcionar bien.

http://flexjson.sourceforge.net

Aquí es un blog cómo hacerlo:

http://wrongnotes.blogspot.com/2010/09/flexjson-meet-android.html

+0

¿JSON no necesita una conexión a Internet? No lo necesitaría de un posible usuario. – madcoderz

+2

No JSON es solo un formato de texto simple para datos como XML. Puedes usarlo sin una conexión a internet. Deberá permitir que su aplicación escriba en el sistema de archivos. – chubbsondubs