Como java.io.Serializable

Este post está importado de mi blog de blogger.
Explico cómo utilizar la clase java.io.Serializable en Android.

Bueno, yo poco a poco sigo con mis pequeños descubrimientos, y quiero pensar que a alguien le puede venir bien encontrarse con posts como este, que cuenta cosas que una vez sabidas parecen obvias.

Todo empezó porque un compañero del curso de Android se le ocurrió la brillante idea de serializar un objeto para pasarlo de una Activity a otra por medio de Intent. Y claro, yo quise copiarle.
Como llegué tarde a clase y además no presté atención al profesor (no leas esto Rocapal ;) ), es ahora cuando descubro cómo funciona el interfaz java.io.Serializable.

Mi clase:

public class RestaurantItem implements java.io.Serializable{
    public String mName;
    public String mDescription;
    public int mPicture;
    public Location mLocation;
}


Y después de un rato de darle vueltas he visto que si la clase tiene un atributo de un tipo no básico como "Location" no se va a poder serializar de forma automática.
He probado cambiando el Location por dos doubles:

public double mLatitude;
public double mLongitude;


y funcionaba, pero prefiero no serializar a quitar el Location :p

Por cierto, para quien quiera pasar un objeto serializado en un Intent, simplemente tiene que hacer:

Intent i = new Intent();
i.putExtra("ObjetoName", myObject);


Siendo myObject un objeto de la clase que implementa java.io.Serializable.
Y para recuperar el objeto del Intent, supuestamente en la otra Activity:

ObjSerializable obj = (ObjSerializable) i.getSerializableExtra("ObjetoName");


Y ya está.

Tue, Apr 5th 2011, 14:01 | Android, Java

0 Comments

Add New Comment

Your name:
Your e-mail:
Your web page:
Comment:
I would like to receive new comment notification.
Security code: