Shared Preferences (SP) merupakan penyimpan data dalam
bentuk key-value, value yang disimpan harus dalam bentuk tipe data primitif
seperti integer, double, string, booelan.. Shared Preference objek untuk
activity diperoleh melalui getPreferences().
Mode
Shared Preferences
Ada tiga mode untuk shared preferences (SP):
• MODE_PRIVATE
data yang disimpan dalam SP hanya dapat
dibaca oleh aplikasi yang bersangkutan.
• MODE_WORLD_READABLE
data yang disimpan dalam SP dapat dibaca oleh aplikasi lain.
• MODE_WORLD_WRITEABLE
data yang disimpan dalam SP dapat dibaca dan diubah oleh aplikasi lain.
Contoh Implementasi Shared
Preferences
Pada
program ini kita akan membuat program yang akan menulis/menyimpan dan membaca
data dari Shared Preferences.
Buat project android dengan ketentuan sebagai
berikut :
·
Project name : SharedPreferences
·
Build Target : Android 2.1-update1
·
Application Name : SharedPreferences
·
Package name : id.ac.ub.pttik.sharpreferences
·
Activity : SharePreferencesActivity
·
Min SDK : 7
Berikut adalah code untuk menyimpan
data ke dalam SharedPreferences beserta penjelasan. –
package deedeeitsme.wordpress.com;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
import android.widget.RadioGroup.OnCheckedChangeListener;
//implements OnCheckedChangeListener
& OnClickListener untuk action dari radio button & button
simpan
public class MainActivity extends Activity
implements OnCheckedChangeListener,
OnClickListener
{
//
inisialisasi variable
private static
final String PREFS_KU = "PREFSKU";
private static
final String TIPE_MAP = "TipeMap";
private static
final String ID = "ID";
private static
final String KEY = "Key";
private RadioGroup
radioGroupTipeMap;
private EditText
editID;
private EditText
editKey;
private Button
btnSimpan;
private boolean
tipeMapSatellite;
private RadioButton
radioStreet;
private RadioButton
radioSatellite;
/** Called
when the activity is first created. */
@Override
public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//
panggil method setupView
setupView();
}
private void
setupView() {
//
inisialisasi variable komponen view dari activity sesuai dengan
//
layout main.xml yg telah kita desain
radioGroupTipeMap
= (RadioGroup) findViewById(R.id.radioGroupTipeMap);
//
beri action listener ketika terjadi perubahan check pada radioButton
//
yg terdapat di dalam radioGroup
radioGroupTipeMap.setOnCheckedChangeListener(this);
radioSatellite
= (RadioButton) findViewById(R.id.radioSatellite);
radioStreet
= (RadioButton) findViewById(R.id.radioStreet);
editID
= (EditText) findViewById(R.id.editID);
editKey
= (EditText) findViewById(R.id.editKey);
btnSimpan
= (Button) findViewById(R.id.btnSimpanKonfigurasi);
//
beri action listener untuk sekali click pada button simpan
btnSimpan.setOnClickListener(this);
//
Beri nilai shared preferences dengan instance dari
//
getSharedPreferences dengan
//
parameter("nama preferensi","Mode
Preferensi")
//
mode_private artinya, setiap activity yg berada dalam aplikasi ini
//
bisa saling berbagi data melalui sharedprefs ini.
SharedPreferences
sharedPreferences = getSharedPreferences(PREFS_KU,
MODE_PRIVATE);
//
beri nilai tipeMapSatellite dengan data yg telah tersimpan pada
//
sharedPrefs dengan parameter ("Key", "nilai
default")
//
maksudnya jika tidak ada data ditemukan pada key TIPE_MAP, maka
//
secara otomatis shared kita berikan nilai default false
tipeMapSatellite
= sharedPreferences.getBoolean(TIPE_MAP, false);
//
cek nilai dari tipeMapSatellite, jika true,. maka radioSatellite yg
//
akan terpilih
if
(tipeMapSatellite) {
radioSatellite.setChecked(true);
}
else {
radioStreet.setChecked(true);
}
//
set text editID & editKey dari data yg di dapat dari sharedPrefs
//
dengan parameter ("Key","nilai default")
//
jika tidak terdapat data pada key ID / KEY., maka sharedprefs akan
//
secara otomatis memberikan nilai default kosong ""
editID.setText(sharedPreferences.getString(ID,
""));
editKey.setText(sharedPreferences.getString(KEY,
""));
}
// beri
action ketika perubahan check radio button terjadi
@Override
public void onCheckedChanged(RadioGroup
group, int checkedId) {
//
TODO Auto-generated method stub
switch
(group.getCheckedRadioButtonId()) {
case
R.id.radioSatellite:
SharedPreferences
sharedPreferences = getSharedPreferences(
PREFS_KU,
MODE_PRIVATE);
//
disinilah letak action penyimpanan datanya..
SharedPreferences.Editor
editor = sharedPreferences.edit();
//
beri nilai boolean true pada key TIPE_MAP
editor.putBoolean(TIPE_MAP,
true);
//
jangan lupa panggil method commit agar data tersimpan
editor.commit();
Toast.makeText(getApplicationContext(),
"Tipe Satellite",
Toast.LENGTH_LONG).show();
break;
case
R.id.radioStreet:
//penjelasan
sama seperti sebelumnya
SharedPreferences
sharedPreferences2 = getSharedPreferences(
PREFS_KU,
MODE_PRIVATE);
SharedPreferences.Editor
editor2 = sharedPreferences2.edit();
editor2.putBoolean(TIPE_MAP,
false);
editor2.commit();
Toast.makeText(getApplicationContext(),
"Tipe Street",
Toast.LENGTH_LONG).show();
break;
}
}
@Override
public void onClick(View
v) {
//
TODO Auto-generated method stub
SharedPreferences
sharedPreferences = getSharedPreferences(PREFS_KU,
MODE_PRIVATE);
SharedPreferences.Editor
editor = sharedPreferences.edit();
//berikan
nilai pada key ID dari EditText editID & editKey
editor.putString(ID,
editID.getText().toString());
editor.putString(KEY,
editKey.getText().toString());
editor.commit();
Toast.makeText(getApplicationContext(),
"Konfigurasi Tersimpan",
Toast.LENGTH_LONG).show();
}
}
I would rather English than Math
ReplyDelete