안드로이드(Android)를 사용하다보면, 액티비티간 혹은 메소드 등에서 간단하게 데이터를 주고 받고 싶을 때가 있다.
물론 Intent의 extra를 이용하여 getIntent를 통해 정보를 주고 받을 수도 있지만, 특정상황에서 값을 저장하고, 어떤 순간이 왔을 때
그 값을 바로 불러서 사용하고 싶을 때 SharedPreferences를 이용하면 좀 더 편리하게 데이터 처리를 할 수 있다.
기본구조
SharedPreferences pref = getSharedPreferences("Preferences이름", MODE_PRIVATE);
여기서 주목할 부분은 getSharedPreferences 부분이다.
getSharedPreferences에서 pref로 되어있는 부분은 Preferences의 이름이며 사용하고 싶은 정보를 나타내는 이름으로 짓게되면
나중에 데이터 삭제 혹은 수정 시 편리하다.
MODE_REIVATE 는 찾아보면 친절하게 다음과 같은 설명이 나와있다.
File creation mode: the default mode, where the created file can only be accessed by the calling application (or all applications sharing the same user ID).
해석하자면 기본모드라고 보면 된다. 동일한 사용자 ID를 공유하는 모든 응용 프로그램에서만 액세스 할 수 있다. 이렇게 해석할 수 있는데,
이것은 해당 어플리케이션에서만 사용할 수 있다. 요정도로 생각하면 된다.
사용방법
사용방법은 간단하다.
SharedPreferences 선언 후 입력 또는 삭제하고 싶을 때는 Editor를 이용, 값을 불러올때는 SharedPreferences 에서 바로 불러오면된다.
Editor의 경우에는 꼭 commit를 해줘야하는 것을 잊지말자.
1. 불러오기
SharedPreferences pref = getSharedPreferences("Preferences이름", MODE_PRIVATE);
pref.getString("호출할이름", "Default값");
2. 저장
SharedPreferences pref = getSharedPreferences("Preferences이름", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putString("호출할이름", "입력값");
editor.commit();
3. 삭제("호출할이름"만 삭제)
SharedPreferences pref = getSharedPreferences("Preferences이름", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.remove("호출할이름");
editor.commit();
4. 전체 삭제("Preferences이름" 데이터 삭제)
SharedPreferences pref = getSharedPreferences("Preferences이름", MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.clear();
editor.commit();
주의사항
"Preferences이름"의 데이터가 "호출할이름" 한개인 경우에는 삭제나, 전체 삭제나 같은 결과가 나오지만,
"Preferences이름"의 데이터가 "호출할이름", "호출할이름1" 이렇게 1개 이상일 때는 전체 삭제를 하게되면
"호출할이름", "호출할이름1" 두개의 데이터가 다 삭제되니 주의해야 한다.
'안드로이드 > 안드로이드 Method' 카테고리의 다른 글
[Android/안드로이드] 언어별 strings.xml 폴더 사용법 (0) | 2020.09.22 |
---|---|
[Android/안드로이드] build.gradle 사용법 (0) | 2019.07.09 |
[Android/안드로이드] Unable to recognize OLE stream xls (엑셀) 에러 (0) | 2017.11.16 |
[Android/안드로이드] 외부저장소 절대 경로 찾기 / getAbsolutePath() / 폴더 생성 (1) | 2017.11.09 |
[Android/안드로이드] WebView 새로고침, 앞, 뒤, 불러오기 (0) | 2017.11.08 |