İOS'ta NSUserDefaults'un Android eşdeğeri


104

Bazı basit verileri kaydetmek istiyorum. İPhone'da bunu NSUserDefaultsObjective-C ile yapabilirim.

Android'deki benzer komut nedir?

Uygulama kurulduğu sürece yeniden kullanılmak üzere birkaç değişken kaydediyorum. Bunu yapmak için karmaşık bir veritabanı kullanmak istemiyorum.

Yanıtlar:


212

Bulduğum en basit çözüm bu:

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

'Bağlam' mevcut bağlam olduğunda (örneğin, bir aktivite alt sınıfında bu olabilir ).


bu, çok basit şeyleri saklamanın yolu, basit ve doğrudan
— konuya

Koddaki hatayı düzelttim (var olmayan getPreferences'ı çağırıyordum, getSharedPreferences'ı değil).
— Ben Clayton

14
2015 Güncellemesi: Android, kalıcı verileri hemen depolamak ve olası ana iş parçacığını engellemek yerine apply () bir arka plan iş parçacığı üzerinde çalıştığından, şimdi commit () yerine apply () kullanılmasını önerir.
— AppsIntheParkNYC

Bu Paylaşılan Tercihlere jni kodundan erişmenin bir yolu var mı?
— IgorGanapolsky

2
AppCompatActivitygetApplicationContext()
— İçeriden
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.