2010-08-27 3 views
87

Je voudrais enregistrer quelques données simples. Sur l'iPhone, je peux le faire avec NSUserDefaults en Objective-C.L'équivalent Android de NSUserDefaults dans iOS

Quelle est la commande similaire ici dans Android?

Je sauvegarde 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 le faire.

Répondre

182

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

//--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 ce).

+0

c'est le chemin à parcourir pour stocker des choses très simples, c'est simple et direct au point – smith324

+0

J'ai corrigé l'erreur dans le code (appelait les getPreferences inexistantes, pas getSharedPreferences). –

+10

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