Bagian pelajaran ini mengajarkan Anda cara
Anda juga harus membaca
Jika Anda memiliki kumpulan nilai-kunci relatif kecil yang ingin disimpan,
Anda harus menggunakan SharedPreferences API.
Objek SharedPreferences menunjuk ke file berisi
pasangan nilai-kunci dan menyediakan metode sederhana untuk membaca dan menulisnya. Setiap file
SharedPreferences dikelola oleh kerangka kerja
dan bisa bersifat privat atau bersama.
Kelas ini menampilkan cara menggunakan SharedPreferences API untuk menyimpan dan
mengambil nilai-nilai sederhana.
Catatan: SharedPreferences API
hanyalah untuk membaca dan menulis pasangan nilai-kunci dan Anda tidak boleh mencampuradukkannya dengan
Preference API, yang membantu Anda membangun antarmuka pengguna
bagi setelan aplikasi (walaupun menggunakan SharedPreferences sebagai
implementasinya untuk menyimpan setelan aplikasi). Untuk informasi tentang menggunakan Preference API, lihat panduan Setelan.
Memahami Preferensi Bersama
Anda bisa membuat file preferensi bersama yang baru maupun mengakses file yang ada dengan memanggil salah satu dari dua metode:
getSharedPreferences()— Gunakan ini jika Anda memerlukan beberapa file preferensi bersama yang diidentifikasi melalui nama, yang Anda tetapkan dengan parameter pertama. Anda bisa memanggilnya dari setiapContextdalam aplikasi.getPreferences()— Gunakan ini dariActivityjika Anda hanya perlu menggunakan satu file preferensi bersama untuk aktivitas. Karena ini mengambil file preferensi bersama default yang dimiliki aktivitas, maka Anda tidak perlu memberikan nama.
Misalnya, kode berikut dieksekusi dalam Fragment.
Kode ini mengakses file preferensi bersama
yang diidentifikasi melalui string sumber daya R.string.preference_file_key dan membukanya menggunakan
mode privat sehingga file hanya bisa diakses oleh aplikasi Anda.
Context context = getActivity();
SharedPreferences sharedPref = context.getSharedPreferences(
getString(R.string.preference_file_key), Context.MODE_PRIVATE);
Saat menamai file preferensi bersama, Anda harus menggunakan nama yang bisa diidentifikasi secara unik
oleh aplikasi Anda, misalnya "com.example.myapp.PREFERENCE_FILE_KEY"
Atau, jika hanya perlu satu file preferensi bersama untuk aktivitas, Anda bisa menggunakan
metode getPreferences():
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
Perhatian: Jika Anda membuat file preferensi bersama
dengan MODE_WORLD_READABLE atau MODE_WORLD_WRITEABLE, maka setiap aplikasi lainnya yang mengetahui identifier file itu
akan bisa mengakses data Anda.
Menulis ke Preferensi Bersama
Untuk menulis ke file preferensi bersama, buatlah SharedPreferences.Editor dengan memanggil edit() pada SharedPreferences Anda.
Teruskan semua kunci dan nilai yang ingin Anda tulis bersama metode, misalnya putInt() dan putString(). Lalu panggil commit() untuk menyimpan perubahan. Misalnya:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPref.edit(); editor.putInt(getString(R.string.saved_high_score), newHighScore); editor.commit();
Membaca dari Preferensi Bersama
Untuk mengambil nilai dari file preferensi bersama, panggil metode seperti getInt() dan getString(), dengan menyediakan kunci untuk nilai yang
Anda inginkan, dan bisa juga nilai default yang akan dikembalikan jika kunci tidak
ada. Misalnya:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); int defaultValue = getResources().getInteger(R.string.saved_high_score_default); long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);