web-dev-qa-db-fra.com

Android SharedPreferences, comment enregistrer une simple variable int

J'essaie depuis la dernière heure de sauvegarder un entier dans mon Android. J'ai lu que cela peut être fait en utilisant les SharedPreferences. Cependant, je ne comprends pas pourquoi cela semble si déroutant de le faire.

Comment puis-je simplement enregistrer une variable int? Et puis, lorsque je lance à nouveau l'application, comment puis-je à nouveau interagir avec cette variable?

32
donparalias
SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putInt("your_int_key", yourIntValue);
editor.commit();

le vous pouvez l'obtenir comme:

 SharedPreferences sp = getSharedPreferences("your_prefs", Activity.MODE_PRIVATE);
 int myIntValue = sp.getInt("your_int_key", -1);

L'interface SharedPreference vous donne accès au fichier xml et un moyen simple de le modifier via son éditeur. Le fichier est stocké dans /data/data/com.your.package/shared_prefs/ et vous pouvez y accéder via cette SharedPreference API

56
Blackbelt
public void SaveInt(String key, int value){
       sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
       SharedPreferences.Editor editor = sharedPreferences.edit();
       editor.putInt(key, value);
       editor.commit();
}
public void LoadInt(){
       sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
       savedValue = sharedPreferences.getInt("key", 0);
}

Si vous souhaitez enregistrer la variable quelque part, vous devez écrire SaveInt ("clé", 5); Avec cela, vous enregistrerez la valeur 5, tandis que la première valeur par défaut est 0. Si vous voulez la charger et l'utiliser dans une autre activité, vous devez y écrire ces deux méthodes et appeler LoadInt (); où vous avez besoin de la variable. La valeur sauvegardée est un entier prédéfini (cela doit être déclaré partout où vous souhaitez utiliser la variable enregistrée)

11
Jani Bela

Voici l'exemple de définition des préférences booléennes. Vous pouvez également utiliser Integer.

SharedPreferences prefs = PreferenceManager
                    .getDefaultSharedPreferences(this);
            if (!prefs.getBoolean("firstTime", false)) {

                SharedPreferences.Editor editor = prefs.edit();
                editor.putBoolean("firstTime", true);
                editor.commit();
            }

J'espère que cela pourrait être utile.

6
Chintan Soni