Android еквівалент NSUserDefaults в iOS


103

Я хотів би зберегти кілька простих даних. На iPhone я можу це зробити NSUserDefaultsв «Objective-C».

На що тут схожа команда в Android?

Я просто зберігаю кілька змінних, які будуть повторно використані до тих пір, поки програма встановлена. Я не хочу використовувати складну базу даних просто для цього.

Відповіді:


210

Це найпростіше рішення, яке я знайшов:

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

Де "контекст" є поточним контекстом (наприклад, у підкласі діяльності це може бути такий ).


це шлях для зберігання дуже простих речей, його простих і прямо до
суті

Я виправив помилку в коді (викликав неіснуючі getPreferences, а не getSharedPreferences).
Бен Клейтон

14
Оновлення 2015 року: Android рекомендує використовувати application () тепер над фіксацією (), тому що apply () працює на фоновому потоці, а не зберігати стійкі дані негайно та можливо блокувати основний потік.
AppsIntheParkNYC

Чи є спосіб отримати доступ до цієї SharedPreferences з коду jni?
ІгорГанапольський

2
Щоб отримати "контекст" зсередини AppCompatActivity, ви можете використовуватиgetApplicationContext()
Brainware
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.