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?
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
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)
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.