private SharedPreferences _prefs = null;

// SharedPreferences => 환경설정파일 생성하고 관리하기 위한 클래스

SharedPreferences 객체 생성방법

context.getSharedPreferences("PREFS_PRIVATE", Context.MODE_PRIVATE);
// SharedPreferences 객체를 얻기위한 메소드
// "파일명", 파일에 접근할 수 있는 권한
// <?xml version='1.0' encoding='utf-8' standalone='yes' ?>
// <map> </map>

private Editor _editor = null;

// Editor => 환경설정파일의 내용을 수정하기 위한 클래스

Editor 객체 생성방법

SharedPreferences.edit();// Editor 객체를 얻기 위한 메소드

SharedPreferences 가 보유하고 있는 값 추출하는 메서드

SharedPreferences.getString("emailaddress", "Unknown");
// getString() 의 첫번째 값은 ~~.xml에서 <string name="~~">
// getString() 의 두번째 값은
<string>값이 없을 경우 기본값 </string>

SharedPreferences에 값을 넣거나 수정하는 메서드

Editor.putString("emailaddress", newemail);
// putString() => <string></string>
// putString()의 첫번째 값 => <string name="~~~">
// putString()의 두번째 값 => <string>~~~~</string>
// <string name="emailaddress">newemail변수의 값</string>

새로운 값, 변경 내용을 SharedPreferences에 실제로 적용시키는 메서드

Editor..commit();
// this._editor에 보관되어 있는
// <string name="emailaddress">newemail변수의 값</string>
// <string name="serverurl">serverurl변수의 값</string>
// 를 SharedPreferences xml 파일에 적용시키는 메소드

실제 사용한 예

/*
* prefs.java Unlocking Android http://manning.com/ableson Author: W. F. Ableson
* fableson@msiservices.com
*/

package com.msi.manning.UnlockingAndroid;

import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

public class Prefs {

private SharedPreferences _prefs = null;
// SharedPreferences => 환경설정파일 생성
private Editor _editor = null;
// Editor => 환경설정파일의 내용을 수정
private String _useremailaddress = "Unknown";
private String _serverurl = "http://android12.msi-wireless.com/getjoblist.php";

public Prefs(Context context) {
this._prefs = context.getSharedPreferences("PREFS_PRIVATE", Context.MODE_PRIVATE);
// SharedPreferences 객체를 얻기위한 메소드
// "파일명", 파일에 접근할 수 있는 권한
// <?xml version='1.0' encoding='utf-8' standalone='yes' ?>
// <map> </map>
this._editor = this._prefs.edit();
// Editor 객체를 얻기 위한 메소드
}
// getValue() => SharedPreferences파일의 내용을 얻기 위한 메소드
public String getValue(String key, String defaultvalue) {
if (this._prefs == null) {
return "Unknown";
}

return this._prefs.getString(key, defaultvalue);
}
// setValue() => SharedPreferences파일에 내용을 저장 위한 메소드
public void setValue(String key, String value) {
if (this._editor == null) {
return;
}

this._editor.putString(key, value);

}
// getEmail() => 계정을 추출하는 메서드
public String getEmail() {
if (this._prefs == null) {
return "Unknown";
}

this._useremailaddress = this._prefs.getString("emailaddress", "Unknown");
// getString() 의 첫번째 값은 ~~.xml에서 <string name="~~">
// getString() 의 두번째 값은 <string>값이 없을 경우 기본값 </string>
return this._useremailaddress;
}
// getServer() => 접속할 URL 주소를 추출하기 위한 메소드
public String getServer() {
if (this._prefs == null) {
return "http://android12.msi-wireless.com/";
}

this._serverurl = this._prefs.getString("serverurl", "http://android12.msi-wireless.com/");
return this._serverurl;
}
// setEmail(입력된 사용자계정) =>입력된 사용자계정을 저장하는 메서드
public void setEmail(String newemail) {
if (this._editor == null) {
return;
}

this._editor.putString("emailaddress", newemail);
// putString() => <string></string>
// putString()의 첫번째 값 => <string name="~~~">
// putString()의 두번째 값 => <string>~~~~</string>
// <string name="emailaddress">newemail변수의 값</string>
}
// setServer(입력된 URL주소) => 입력된 URL주소를 저장하는 메소드
public void setServer(String serverurl) {
if (this._editor == null) {
return;
}
this._editor.putString("serverurl", serverurl);
// putString() => <string></string>
// putString()의 첫번째 값 => <string name="~~~">
// putString()의 두번째 값 => <string>~~~~</string>
// <string name="serverurl">serverurl변수의 값</string>
}
// save() => 실제로 ~~.xml 파일에 저장하는 메소드
public void save() {
if (this._editor == null) {
return;
}
this._editor.commit();
// this._editor에 보관되어 있는
// <string name="emailaddress">newemail변수의 값</string>
// <string name="serverurl">serverurl변수의 값</string>
// 를 SharedPreferences xml 파일에 적용시키는 메소드
}
}

실습예제

프로젝트 새롭게 만들고, 메인화면에 아래와 같이 구성...

ToggleButton => 사운드 (기본값 : On)
EditText => 아이디 (기본값 : default)
EditText => 비밀번호 (기본값 : default)

CheckBox => 아이디저장 (기본값 : 체크해제)
CheckBox => 비밀번호저장 (기본값 : 체크해제)

Button => 확인

확인버튼을 누르면 SharedPreferences 파일에

현재 사운드의 On/Off 상태 값, 체크박스에 체크한 값들은 (아이디, 비밀번호) 저장할 수 있도록 코드 작성....
(단, 다시 어플리케이션을 실행하면 현재 SharedPreferences 파일에

저장된 값으로 실행되어야 함..)