Jump to content

Recommended Posts

Salut !

Je voudrais sauver un objet (une liste d'objets en fait)

Vous avez une idée ?

Les classes Preferences ne semblent pouvoir stocker que des types primitifs, donc ça ne va pas :(

Merci

Share this post


Link to post
Share on other sites

Bonjour.

Quittes à déterrer un ancien sujet (toutes mes excuses) autant que ça serve aux gens qui se posent la question.

Si tu veux sauvegarder dans la mémoire Interne de ton téléphone il existe une méthode simple et rapide :

FileOutputStream fos = context.openFileOutput(name, Context.MODE_PRIVATE);
  ObjectOutputStream oos = new ObjectOutputStream(fos);
  oos.writeObject(dictionary);
  oos.close();

Avec "dictionary" de type :

Hashtable<String,Object> dictionary

Pour lire on pourra utiliser :

java.io.File file = context.getFileStreamPath(name);
  if(file.exists())
  {
   FileInputStream fis = context.openFileInput(name);
   ObjectInputStream ois = new ObjectInputStream(fis);
   dictionary = (Hashtable<String, Object>) ois.readObject();
   ois.close();
  }

avec name de type String (nom du fichier)

(J'ai volontairement enlevé les blocs try/catch mais ils sont essentiels pour ce type d'opérations d'entrée / sortie).

Pour plus d'informations à ce sujet je vous invite à lire cet article de la doc officielle :

http://developer.android.com/guide/topics/data/data-storage.html

Bonne chance.

Share this post


Link to post
Share on other sites

En effet, je fais comme cela aussi.

J'ajouterais qu'il faut que les objets enregistrés soit de type Serializable, cad implements Serializable.

Et donc qu'il doivent avoir un ID unique: private static final long serialVersionUID = 1L;

Ce qui donne:

import java.io.Serializable;

public class MonObjet implements Serializable
{
 private static final long serialVersionUID = 1L;
...
}

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.






×
×
  • Create New...