Banyak aplikasi mungkin menyediakan cara untuk menangkap preferensi pengguna pada pengaturan aplikasi atau aktivitas tertentu. Untuk mendukung ini, Android menyediakan satu set API sederhana.
Preferensi biasanya adalah pasangan nilai nama. Mereka dapat disimpan sebagai "Preferensi Bersama" di berbagai aktivitas dalam aplikasi (catatan saat ini tidak dapat dibagikan di seluruh proses). Atau bisa jadi sesuatu yang perlu disimpan khusus untuk suatu aktivitas.
Preferensi Bersama: Preferensi bersama dapat digunakan oleh semua komponen (aktivitas, layanan, dll.) Dari aplikasi.
Preferensi yang ditangani aktivitas: Preferensi ini hanya dapat digunakan dengan dalam aktivitas dan tidak dapat digunakan oleh komponen aplikasi lainnya.
Preferensi Bersama:
Preferensi bersama dikelola dengan bantuan getSharedPreferences
metode Context
kelas. Preferensi disimpan dalam file default (1) atau Anda dapat menentukan nama file (2) yang akan digunakan untuk merujuk ke preferensi.
(1) Berikut adalah cara Anda mendapatkan instance saat Anda menentukan nama file
public static final String PREF_FILE_NAME = "PrefFile";
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);
MODE_PRIVATE
adalah mode operasi untuk preferensi. Ini adalah mode default dan berarti file yang dibuat akan diakses hanya oleh aplikasi pemanggil. Dua mode lainnya yang didukung adalah MODE_WORLD_READABLE
dan MODE_WORLD_WRITEABLE
. Di MODE_WORLD_READABLE
aplikasi lain dapat membaca file yang dibuat tetapi tidak dapat memodifikasinya. Dalam kasus MODE_WORLD_WRITEABLE
aplikasi lain juga memiliki izin menulis untuk file yang dibuat.
(2) Cara yang disarankan adalah menggunakan mode default, tanpa menentukan nama file
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
Terakhir, setelah Anda memiliki instance preferensi, berikut adalah cara mengambil nilai yang disimpan dari preferensi:
int storedPreference = preferences.getInt("storedInt", 0);
Untuk menyimpan nilai di SharedPreference.Editor
objek file preferensi harus digunakan. Editor
adalah antarmuka SharedPreference
kelas yang bersarang .
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
Editor juga mendukung metode seperti remove()
dan clear()
untuk menghapus nilai preferensi dari file.
Preferensi Aktivitas:
Preferensi bersama dapat digunakan oleh komponen aplikasi lainnya. Tetapi jika Anda tidak perlu berbagi preferensi dengan komponen lain dan ingin memiliki aktivitas preferensi pribadi. Anda dapat melakukannya dengan bantuan getPreferences()
metode aktivitas. The getPreference
Metode menggunakan getSharedPreferences()
metode dengan nama kelas aktivitas untuk nama file preferensi.
Berikut adalah kode untuk mendapatkan preferensi
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
int storedPreference = preferences.getInt("storedInt", 0);
Kode untuk menyimpan nilai juga sama seperti dalam kasus preferensi bersama.
SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
Anda juga dapat menggunakan metode lain seperti menyimpan status aktivitas dalam database. Catatan Android juga berisi paket bernama android.preference
. Paket mendefinisikan kelas untuk mengimplementasikan UI preferensi aplikasi.
Untuk melihat beberapa contoh lainnya, periksa pos Penyimpanan Data Android di situs pengembang.
PreferenceManager.setDefaultValues(this, R.xml.profiles_preferences, false);
preferences
objek, pemanggilaneditor.apply()
direkomendasikaneditor.commit()
karena yang pertama akan menangani penyimpanan di latar belakang.