2010-11-29 7 views
2

Je construis une application Android et je veux ajouter une fonction historique. J'ai entendu que je peux sérialiser une liste pour pouvoir enregistrer et récupérer des données au lieu d'utiliser une base de données, je n'ai aucune idée de comment cela fonctionne donc je viens ici et demander des conseils, y at-il quelque part que je pourrais commencer avec cela. Quelques bons liens pourraient être utiles.comment sérialiser HashSet

Merci

Répondre

2

Vous ne devriez pas utiliser sérialisable, android implémente les parcelables d'une manière beaucoup plus efficace. Le hic, c'est que vous devez définir vous-même comment l'objet vous-même, mais ce n'est pas si difficile.

Exemple simple:

public class MyParcelable implements Parcelable { 
    private int mData; 

    public int describeContents() { 
     return 0; 
    } 

    public void writeToParcel(Parcel out, int flags) { 
     out.writeInt(mData); 
    } 

    public static final Parcelable.Creator<MyParcelable> CREATOR 
      = new Parcelable.Creator<MyParcelable>() { 
     public MyParcelable createFromParcel(Parcel in) { 
      return new MyParcelable(in); 
     } 

     public MyParcelable[] newArray(int size) { 
      return new MyParcelable[size]; 
     } 
    }; 

    private MyParcelable(Parcel in) { 
     mData = in.readInt(); 
    } 
} 

Si vous souhaitez enregistrer un HashSet, il vous suffit de vous assurer que les objets à l'intérieur du Hash sont également parcelable.

Si vous pensez qu'il y a trop de problèmes, la réponse de Nailuj est correcte.

+0

merci pour les réponses, je vais donner un essai à l'exemple @blindstuff, pour voir qu'il il va;) –

16

HashSet met en œuvre Serializable. Donc, tant que tous les objets que vous mettez dans votre ensemble de hachage implémente également Serializable (et tous les objets qui s'y trouvent à nouveau, etc.), vous pouvez le sérialiser comme tout autre objet Java sérialisable normal.