안드로이드 공부/ SharedPreference

yellow·2021년 6월 4일
0

안드로이드 공부

목록 보기
23/28

SharedPreference

  • Key-Value 방식의 데이터베이스
  • DB와 같은 큰 저장소에 저장하기 부담스러운 설정값, 문자열과 같은 간단한 데이터들을 저장할 때 사용한다.
  • 앱 폴더 내에 데이터를 파일 형태로 저장한다.
  • SharedPreference의 객체를 수정할 때는 editor를 사용하고, 변경된 내용을 반영할 때에 commit()을 호출해 주어야 한다.

📎 SharedPreference 예제

1. 데이터 저장하기

🖇 SharedPreference 객체 생성하기

val sharedPreference = getSharedPreferences(name, mode)

1. name parameter

  • 앱 내에는 여러 SharedPreference 객체가 있을 수 있고, 그 객체들을 구분해주는 식별자로 사용된다.

2. mode parameter

  • MODE_PRIVATE : 생성한 application에서만 사용 가능
  • MODE_WORLD_READABLE : 다른 application에서 읽기만 가능
  • MODE_WORLD_WRITABLE : 다른 application에서 쓰기도 가능
  • MODE_APPEND : 기존 perference에 신규로 추가

🖇 SharedPreference 객체에 데이터 저장하기

editor를 사용해야 한다.
그리고 실제로 객체 내에 데이터를 저장하려면 꼭 commit()을 호출해야 한다.

editor.putString(key, value) // Key-Value 방식
  • 예시
//SharedPreference 만들기
val sharedPreference = getSharedPreferences("sp1", Context.MODE_PRIVATE)

//SharedPreference에 데이터 넣기
// 1. SharedPreference로부터 editor 얻어오기
val editor : SharedPreferences.Editor = sharedPreference.edit()
editor.putString("hello", "안녕하세요") // Key-Value 방식
editor.putString("goodbye", "안녕히가세요")
editor.commit() // 데이터 넣기

2. 데이터 읽기

🖇 SharedPreference 객체 불러와서 데이터 읽기

val value = sharedPreference.getString(key, defaultValue)

defaultValue parameter

  • 만약 해당 key에 해당하는 데이터가 없는 경우 기본값으로 넘겨줄 값 지정
  • 예시
// sharedPreference에서 값을 불러오는 방법
val sharedPreference = getSharedPreferences("sp1", Context.MODE_PRIVATE)

val value1 = sharedPreference.getString("hello", "데이터 없음1")
val value2 = sharedPreference.getString("goodbye", "데이터 없음2")
Log.d("key-value", "Value1 : " + value1)
Log.d("key-value", "Value2 : " + value2)

3. 데이터 삭제하기

  • editor를 사용해야 한다.

3 - 1. 부분 데이터 삭제하기

🖇 특정한 key에 대한 데이터만 삭제하고 싶을 때

editor.remove(key)
  • 예제
val sharedPreference = getSharedPreferences("sp1", Context.MODE_PRIVATE)
val editor = sharedPreference.edit()
editor.remove("hello") // key가 "hello"인 데이터 삭제
editor.commit() // editor는 commit해주는거 잊지 말자

3 - 2. 전체 데이터 삭제하기

🖇 SharedPreference에 저장한 모든 데이터를 삭제하고 싶을 때

editor.clear()
  • 예제
val sharedPreference = getSharedPreferences("sp1", Context.MODE_PRIVATE)
val editor = sharedPreference.edit()
editor.clear() // "sp1"에 저장된 모든 데이터 저장 
editor.commit() 
profile
할 수 있어! :)

0개의 댓글