데이터의 저장보다는 UI 상태를 저장하는데 사용.
어플리케이션 중 특정 설정을 저장해야 하는 경우.
(자동 로그인, 비밀번호 저장 여부 설정 등설정들도 Shared Preferences를 이용하여 저장)
Activity와 관련하여 저장해야할 값들이 있는 경우 편리하게 Activity.getPreferences(int mode)를 이용할 수도 있습니다.
SharedPreference는 data/data/패키지이름/shared_prefs 폴더에 위에서 지정한 Preferences의 이름으로 저장됩니다.
public class prefExample extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// "pref"라는 가진 Shared Preferences 객체를 생성합니다.
SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE); // Shared Preference를 불러옵니다.
EditText edit1 = (EditText)findViewById(R.id.EditText);
CheckBox check1 = (CheckBox)findViewById(R.id.CheckBox01);
CheckBox check2 = (CheckBox)findViewById(R.id.CheckBox02);
// 저장된 값들을 불러옵니다.
String text = pref.getString("editText", "");
Boolean chk1 = pref.getBoolean("check1", false);
Boolean chk2 = pref.getBoolean("check2", false);
edit1.setText(text);
check1.setChecked(chk1);
check2.setChecked(chk2);
}
public void onStop(){ // 어플리케이션이 화면에서 사라질때
super.onStop();
//SharedPreferences 객체를 수정하려면, Editor 객체를 받아와야 합니다.
SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE); // UI 상태를 저장합니다.
SharedPreferences.Editor editor = pref.edit(); // Editor를 불러옵니다.
EditText edit1 = (EditText)findViewById(R.id.EditText);
CheckBox check1 = (CheckBox)findViewById(R.id.CheckBox01);
CheckBox check2 = (CheckBox)findViewById(R.id.CheckBox02);
// 저장할 값들을 입력합니다.
editor.putString("editText", edit1.getText().toString());
editor.putBoolean("check1", check1.isChecked());
editor.putBoolean("check2", check2.isChecked());
editor.commit(); // 저장합니다.
}
}
'android programming' 카테고리의 다른 글
HTTP (0) | 2010.03.26 |
---|---|
http에 request요청시... redirect 하는 방법... (0) | 2010.03.05 |
문자코드변환 (0) | 2010.03.04 |
커스텀 리스트뷰 다이얼로그에 컨텍스트메뉴리스너 달기.. (0) | 2010.03.04 |
팝업창(Dialog) (0) | 2010.01.24 |