Equivalente Android di NSUserDefaults in iOS


103

Vorrei salvare alcuni semplici dati. Su iPhone, posso farlo conNSUserDefaults Objective-C.

Qual è il comando simile qui in Android?

Sto solo salvando alcune variabili, da riutilizzare finché l'applicazione è installata. Non voglio usare un database complicato solo per farlo.

Risposte:


210

Questa è la soluzione più semplice che ho trovato:

//--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);  

Dove "contesto" è il contesto corrente (ad esempio, in una sottoclasse di attività potrebbe essere questo ).


questa è la strada da percorrere per memorizzare cose molto semplici, è semplice e diretto al punto
smith324

Ho corretto l'errore nel codice (stavo chiamando il getPreferences inesistente, non getSharedPreferences).
Ben Clayton

14
Aggiornamento 2015: Android consiglia l'uso di apply () ora su commit () perché apply () opera su un thread in background invece di archiviare immediatamente i dati persistenti e possibile bloccare il thread principale.
AppsIntheParkNYC

C'è un modo per accedere a questo SharedPreferences dal codice jni?
IgorGanapolsky

2
Per ottenere il 'contesto' dal di dentro AppCompatActivity, è possibile utilizzaregetApplicationContext()
Brainware
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.