2010-01-26 8 views
1

J'ai un objet qui a (entre autres) une liste d'intentions. Je veux passer cet objet en tant que supplément à une intention. Cependant, la classe Intent n'est pas sérialisable, elle est juste "Parcelable".Android: Sérialisable Intent

Je suppose que Parcelable est la version android de Serializable, mais je préfère ne pas avoir à écrire mon propre code de sérialisation pour ma classe, et Parcelable semble l'exiger.

Quelqu'un at-il des solutions autres que de réimplémenter l'intention en tant que classe sérialisable?

Répondre

3

Vous pouvez mettre un Parcelable dans un Intent supplémentaire, et un Intent est déjà Parcelable. Tout ce que vous devez faire est de faire votre objet Parcelable et vous êtes prêt.

+0

Y at-il un moyen facile de rendre votre intention Parcelable? Serializable est sympa parce que vous avez juste à lancer l'interface, il semble que vous devez sérialiser manuellement votre objet en parcelable .. –

+0

'Intents' sont déjà' Parcelable'. – CommonsWare

+0

Oui, je comprends que les intentions sont, mais mon objet ne l'est pas, et il contient un certain nombre d'objets quelque peu complexes. Le code de sérialisation créatrice de main semble être sujet aux erreurs. –

0

Une autre route, vous pouvez prendre:

faire votre liste d'intentions transitoires (non inclus dans un sérialisable), passe ensuite comme un tableau parcelable via Intent.putExtra (String key, Parcelable valeur []).

La classe réceptrice peut ensuite recréer votre objet.

Questions connexes