2010-08-27 11 views
87

Chciałbym zapisać kilka prostych danych. Na iPhone'a mogę to zrobić za pomocą NSUserDefaults w Objective-C.Android odpowiadający NSUserDefaults w iOS

Jakie jest podobne polecenie w Androidzie?

Po prostu zapisuję kilka zmiennych, które mają być ponownie wykorzystane tak długo, jak aplikacja jest zainstalowana. Nie chcę używać skomplikowanej bazy danych, żeby to zrobić.

Odpowiedz

182

Jest to najprostsze rozwiązanie, jakie znaleziono:

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

Gdzie kontekście "jest obecna sytuacja (na przykład w podklasie aktywności może być to).

+0

to jest sposób na przechowywanie bardzo prostych rzeczy, jest prosty i prosty do punktu – smith324

+0

Naprawiłem błąd w kodzie (dzwonił do nieistniejącego getPreferences, a nie getSharedPreferences). –

+10

Aktualizacja 2015: Android zaleca użycie apply() teraz przez commit(), ponieważ apply() działa w wątku tła zamiast natychmiastowego przechowywania trwałych danych i możliwego zablokowania głównego wątku. – AppsIntheParkNYC