É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.