Mengakses dan Menyimpan Data dengan SharedPreferences di Android

Bagus Aji Santoso 6 November 2017

 Mengakses dan Menyimpan Data dengan SharedPreferences di Android

Pendahuluan

Seringkali kita perlu menyimpan beberapa data bersama dengan sebuah aplikasi. SharedPreferences memberikan sebuah opsi penyimpanan yang mungkin cocok dengan data yang kita ingin simpan. Tutorial kali ini akan membahas bagaimana mengakses dan menyimpan data menggunakan SharedPreferences.

Perlu dicatat bahwa SharedPreferences hanya bisa menyimpan bentuk data sederhana seperti String, Double, Integer, Boolean, atau Long. Jika data yang ingin disimpan lebih kompleks, gunakan sistem database lain seperti SQLite.

Membuat Halaman Settings di Android Menggunakan PreferenceFragment

Menyimpan Data dengan SharedPreferences

Untuk menyimpan data di SharedPreferences kita pertama perlu membuat sebuah objek SharedPreferences.

Menentukan Nama File Preferences

SharedPreferences mSettings = getActivity().getSharedPreferences("Settings", Context.MODE_PRIVATE);

String "Settings" adalah nama file yang akan digunakan oleh SharedPreferences untuk menyimpan data. Jika file tersebut tidak ada, maka ia akan dibuat. MODE_PRIVATE menentukan siapa yang bisa mengakses file preference ini (dalam hal ini hanya aplikasi kita). Ada permission read/write lain yang bisa diberikan namun sudah tidak disrankan karena alasan keamanan.

Menggunakan Nama File Preferences Bawaan

Jika tidak ingin membuat file preference baru, kita bisa memakai file preference bawaan:

SharedPreferences mSettings = PreferenceManager.getDefaultSharedPreferences(getActivity());

Dengan cara di atas kita akan menyimpan preference di /data/data/com.package.name/shared_prefs/com.package.name_preferences.xml.

Mengubah Isi Preferences

Langkah selanjutnya adalah membuat objek Editor dari SharedPreferences seperti berikut ini.

SharedPreferences.Editor editor = mSettings.edit();

Lalu kita bisa mulai menambah data ke fiel Settings yang sudah dideklarasikan sebelumnya.

int id = 1;
String username = "john";
editor.putString("username", username);
editor.putInt("id", id);

Jika sudah di tambahkan datanya, panggil method apply() untuk menyimpannya.

editor.apply();

Sekarang data kita sudah disimpan dan bisa diakses menggunakan cara-cara di bawah ini.

Mengakses Data Dari SharedPreferences

Setelah menyimpan beberapa data ke SharedPrefrences kita pasti perlu mengambilnya. Untuk mengakses data-data ini kita bisa menggunakan beberapa metode berikut.

Pertama kita perlu membuat objek SharedPreferences seperti sebelumnya (pastikan file preference-nya sama).

SharedPreferences mSettings = getActivity().getSharedPreferences("Settings", Context.MODE_PRIVATE);

Apabila String yang dimasukkan sebagai nama file preference tidak sama kita bisa tidak mendapatkan data yang seharusnya. Jika file preference yang dimaksud tidak ada maka file ini akan dibuat.

Langkah untuk mengambil data dari objek SharedPreferences adalah sebagai berikut:

String cookieName = mSettings.getString("cookieName", "missing");

Parameter pertama di method getString adalah key yang kita tentukan untuk menyimpan suatu data. Apabila data dengan key tersebut tidak tersedia maka variabel cookieName akan diberikan nilai "missing" yang diberikan pada parameter kedua (default value).

Diterjemahkan dari Storing and Accessing SharedPreferences