Kaydetmek istediğiniz nispeten küçük bir anahtar/değer çifti koleksiyonunuz varsa
SharedPreferences
API'lerini kullanabilirsiniz. SharedPreferences
nesnesi
anahtar/değer çiftleri içeren bir dosyaya işaret eder ve okuması için basit yöntemler sunar
yazıyorum. Her SharedPreferences
dosyası çerçeve tarafından yönetilir ve
gizli veya paylaşılabilir.
Bu sayfada, verileri depolamak için SharedPreferences
API'lerinin nasıl kullanılacağı gösterilmektedir
basit değerleri alma.
Paylaşılan tercihlere herkese açık kullanıcı adı ekleyin
Yeni bir paylaşılan tercih dosyası oluşturabilir veya şu yöntemlerden birini kullanın:
getSharedPreferences()
: Birden fazla paylaşıma ihtiyacınız varsa bunu kullanın ada göre tanımlanan tercih dosyaları (ilk olarak parametresinden sonra bir değer girin. Bunu, uygulamanızdaki herhangi birContext
'dan çağırabilirsiniz.getPreferences()
: Aşağıdakilere ihtiyacınız varsa bunu birActivity
üzerinden kullanın. etkinlik için yalnızca bir paylaşılan tercih dosyası kullanmak. Çünkü bu Etkinliğe ait varsayılan bir paylaşılan tercih dosyası getirdiğinde ve bir ad vermeniz gerekmez.
Örneğin, aşağıdaki kod
R.string.preference_file_key
kaynak dizesiyle tanımlanır ve bu dizeyi açar
dosyaya yalnızca uygulamanız tarafından erişilebilmesi için gizli modu kullanın:
Kotlin
val sharedPref = activity?.getSharedPreferences( getString(R.string.preference_file_key), Context.MODE_PRIVATE)
Java
Context context = getActivity(); SharedPreferences sharedPref = context.getSharedPreferences( getString(R.string.preference_file_key), Context.MODE_PRIVATE);
Paylaşılan tercih dosyalarınızı adlandırırken
tarafından tanımlanabilir. Bunun iyi bir yolu,
uygulama kimliğiniz. Örnek:
"com.example.myapp.PREFERENCE_FILE_KEY"
.
Alternatif olarak, etkinliğiniz için yalnızca bir paylaşılan tercih dosyasına ihtiyacınız varsa
getPreferences()
yöntemini kullanabilirsiniz:
Kotlin
val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE)
Java
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
Uygulama ayarlarını kaydetmek için SharedPreferences
API'yi kullanıyorsanız
bunun yerine varsayılan değeri almak için getDefaultSharedPreferences()
kullanmalıdır
paylaşılmış tercih dosyası ekleyebilirsiniz. Daha fazla bilgi için
Ayarlar geliştirici kılavuzu.
Paylaşılan tercihlere yazma
Paylaşılan tercihler dosyasına yazmak için bir SharedPreferences.Editor
oluşturun
SharedPreferences
cihazınızda edit()
numaralı telefonu arayarak.
Yazmak istediğiniz anahtarları ve değerleri aşağıdaki gibi yöntemlerle iletin:
putInt()
veputString()
. Ardından apply()
numaralı telefonu arayın veya
Değişiklikleri kaydetmek için commit()
. Örnek:
Kotlin
val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE) ?: return with (sharedPref.edit()) { putInt(getString(R.string.saved_high_score_key), newHighScore) apply() }
Java
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPref.edit(); editor.putInt(getString(R.string.saved_high_score_key), newHighScore); editor.apply();
apply()
, bellek içi SharedPreferences
nesnesini hemen değiştirir ancak
, güncellemeleri diske eşzamansız olarak yazar. Alternatif olarak, commit()
işlevini kullanabilirsiniz
komutunu çalıştırın. Ancak commit()
eşzamanlı olduğundan
Kullanıcı arayüzünüzü duraklatabileceği için ana iş parçacığınızdan çağırmaktan kaçınmalısınız.
oluşturma.
Paylaşılan tercihlerden okuma
Paylaşılan tercihler dosyasından değer almak için
getInt()
ve getString()
, girdiğiniz değer için anahtar sağlar
istek ve isteğe bağlı olarak anahtar yoksa döndürülecek varsayılan bir değer girin. Örneğin,
örnek:
Kotlin
val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE) ?: return val defaultValue = resources.getInteger(R.integer.saved_high_score_default_key) val highScore = sharedPref.getInt(getString(R.string.saved_high_score_key), defaultValue)
Java
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); int defaultValue = getResources().getInteger(R.integer.saved_high_score_default_key); int highScore = sharedPref.getInt(getString(R.string.saved_high_score_key), defaultValue);