Équivalent Android de NSUserDefaults dans iOS


103

J'aimerais enregistrer quelques données simples. Sur l'iPhone, je peux le faire avec NSUserDefaultsObjective-C.

Quelle est la commande similaire ici dans Android?

J'enregistre juste quelques variables, à réutiliser tant que l'application est installée. Je ne veux pas utiliser une base de données compliquée juste pour faire cela.

Réponses:


210

C'est la solution la plus simple que j'ai trouvée:

//--Init
int myvar = 12;


//--SAVE Data
SharedPreferences preferences = context.getSharedPreferences("MyPreferences", Context.MODE_PRIVATE);  
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("var1", myvar);
editor.commit();


//--READ data       
myvar = preferences.getInt("var1", 0);  

Où «contexte» est le contexte actuel (par exemple dans une sous-classe d'activité pourrait être ceci ).


c'est la voie à suivre pour stocker des choses très simples, c'est simple et direct
— smith324

J'ai corrigé l'erreur dans le code (j'appelais les getPreferences inexistantes, pas getSharedPreferences).
— Ben Clayton

14
Mise à jour 2015: Android recommande l'utilisation de apply () maintenant sur commit () car apply () fonctionne sur un thread d'arrière-plan au lieu de stocker les données persistantes immédiatement et éventuellement de bloquer le thread principal.
— AppsIntheParkNYC

Existe-t-il un moyen d'accéder à ces SharedPreferences à partir du code jni?
— IgorGanapolsky

2
Pour obtenir le `` contexte '' de l'intérieur AppCompatActivity, vous pouvez utilisergetApplicationContext()
— Brainware
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.