La documentation officielle est assez pauvre en exemple, j'espere que les quelques lignes ci-dessous pourront vous aider.
Google met à disposition des développeurs plusieurs solutions à travers les API Android:
- L'objet Bundle,
- le mécanisme des préférences
- et (solution exclue pour aujourd'hui) la base de donnée intégrée.
Une solution simple à mettre en place est d'utiliser le mécanisme des préférences pour une persistance gérée nativement par Android.
Vous trouverez ci dessous un code fonctionnel permettant de voir concrètement comment gérer l'objet (SharedPreferences ) permettant la sauvegarder et le restore des informations.
========================================
package com.pmedina.ballocation;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
/**
* @author pmedina
*/
public class BalLocationActivity extends Activity {
String adresse; // valeur que nous voulons persister et retrouver après la reliance de l’application
SharedPreferences shared = null;
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Restaure les valeurs sauvegardées lors de la derniere execution de l’appli
shared = PreferenceManager.getDefaultSharedPreferences(this);
adresse = restoreState("adresse");
… faites vos traitements ici …
Avant d’appeler un startActivity(…,…) pensez à appeler la fonction saveState() autant de fois que necessaire.
}
public void saveState(String key, String value) {
SharedPreferences.Editor editor = null;
editor = shared.edit(); // initialisation
editor.putString(key, value);
editor.commit();
}
public String restoreState(String key) {
return shared.getString(key, "Saisissez une adresse");
}
}
pas trop clair,
RépondreSupprimerest ce que vous pouvez nous passer un petit démo, car ça fonctionne pas chez moi.
Bonjour,
RépondreSupprimerLe process est assez simple à mettre en place.
Il faut créer un objet "SharedPreferences" en attribut de ton objet.
SharedPreferences shared = null;
dans ta méthode oncreate tu l'instancie:
shared = PreferenceManager.getDefaultSharedPreferences(this);
Pour persister des données, il faut créer un objet editor, l'alimenter et ne pas oublier de le commiter.(méthode saveState(String key, String value))
SharedPreferences.Editor editor = null;
editor = shared.edit(); // initialisation
editor.putString(key, value);
editor.commit();
La méthode restoreState(String key) permet à partir de la clé de retrouver la valeur que tu as persisté.
Si ces explications ne sont pas suffisantes, je te ferais un petit projet Eclipse ce soir et je te l'envoi.
Bonne journée,
Pierre
Bobjour, c Très clair
RépondreSupprimer