🟨 목 차 🟨
1. SharedPreferences 란
2. SharedPreferences 사용하기
2-1. SharedPreferences 인스턴스 얻기
2-2. SharedPreferences에 데이터 저장하기
2-3. SharedPreferences에 데이터 불러오기
2-4. SharedPreferences에 데이터 삭제하기
◼️ 1. SharedPreferences 란 ◼️
- 로컬에 데이터를 저장하기 위해 사용되며, 간단한 것들(Key-Value)은 SharedPreferences에 저장을 하고 대용량들은 SQLite,Room 등을 이용한다.
- 보통 초기 설정값, 자동로그인 여부, 테마 설정 같은 간단한 설정 등을 이용할 때 사용하면 좋다.
- 애플리케이션에 파일 형태로 데이터를 저장한다.(data/data/패기지명/shared_prefs/SharedPreferece이름.xml 위치에 저장)
- 애플리케이션이 삭제되기 전까지 보존된다.
◼️ 2. SharedPreferences 사용하기 ◼️
◼️ 2-1. SharedPreferences 인스턴스 얻기
1. getPreferences(int mode)
- 하나의 액티비티에서만 사용하는 SharedPreferences를 생성한다.
- 생성되는 SharedPreferences 파일은 해당 액티비티이름으로 생선된다.
- 하나의 액티비티에서만 사용할 수 있지만 getSharedPreferences()를 사용하면 다른 액티비티에서도 사용가능하다.
2. getSharedPrefereneces(String name, int mode)
- 특정 이름을 가진 SharedPreferences를 생성한다.
- 주로 애플리케이션 전체에서 사용한다.
◼️ 2-2. SharedPreferences에 데이터 저장하기
데이터를 저장하기 위해서는 SharedPreferences.Editor 인스턴스를 얻어야 한다.[ 데이터 삭제하는것도 SharedPreferences.Editor 인스턴스를 얻어야 하지만 데이터를 불러올때는 필요없다.]
editor.putInt(Key, Value) / editor.putString(Key, Value) / editor.putBoolean(Key, Value)
첫번째 인자는 키 값, 두번째 인자는 넣을 값을 넣어준다.
[ex]
SharedPreferences test = getSharedPreferences("test", MODE_PRIVATE); //SharedPreferences의 객체인 test 생성
SharedPreferences.Editor editor = test.edit(); //SharedPreferences의 객체인 test의 Editor 인스턴스 획득
editor.putString("First", infoFirst); //First라는 key값으로 infoFirst 데이터를 저장한다.
editor.putString("Second", infoSecond); //Second라는 key값으로 infoSecond 데이터를 저장한다.
editor.commit(); //완료한다.
◼️ 2-3. SharedPreferences에 데이터 불러오기
데이터를 불러오기 위해서는 SharedPreferences의 객체를 생성하고 getInt(), getString(), getBoolean() 메소드를 사용하여 불러와야한다.
getInt(Key, Value) / getString(Key, Value) / getBoolean(Key, Value)
첫번째 인자는 키 값, 두번째 인자는 해당값이 없을경우(null) 반환할 값을 넣어준다.
[ex]
SharedPreferences test = getSharedPreferences("test", MODE_PRIVATE); //SharedPreferences의 객체인 test 생성
int firstData = test.getInt("First", 0); //SharedPreferences의 객체인 test로 getInt()메소드로 데이터 불러오기
◼️ 2-4. SharedPreferences에 데이터 삭제하기
데이터를 삭제하기 위해서는 SharedPreferences.Editor 인스턴스를 얻어야 한다.
1. 특정 데이터 삭제
[ex]
SharedPreferences test = getSharedPreferences("test", MODE_PRIVATE); //SharedPreferences의 객체인 test 생성
SharedPreferences.Editor editor = test.edit(); //SharedPreferences의 객체인 test의 Editor 인스턴스 획득
editor.remove("test"); // SharedPreferences에 키 값이 test인 데이터 값 삭제
editor.commit(); // editor commit
2. 모든 데이터 삭제
[ex]
SharedPreferences test = getSharedPreferences("test", MODE_PRIVATE); //SharedPreferences의 객체인 test 생성
SharedPreferences.Editor editor = test.edit(); //SharedPreferences의 객체인 test의 Editor 인스턴스 획득
editor.clear(); //SharedPreferences에 저장된 모든 데이터 삭제
editor.commit(); //editor commit
SharedPreferences 자동 로그인 구현 참조 : https://bj-turtle.tistory.com/26