Dico

[Kotlin] SharedPreferences

  • 민갤

SharedPreferences

기기의 내부/외부 저장소에 XML 파일 형태로 간단한 값을 저장한다.

어플리케이션을 삭제하면 해당 파일도 삭제된다.

객체 생성

getPreferences(int mode)

하나의 액티비티에서만 사용하는 기본 설정 파일 저장한다.

getSharedPreferences(String name, int mode)

여러 기본 설정 파일을 저장하며, 어플리케이션 전체에서 사용한다.

  • name : 해당 SharedPreferences의 이름
  • mode : 권한

     - MODE_PRIVATE는 애플리케이션 전용 파일을 생성

저장

키-값의 쌍으로 저장한다.

기본 데이터 타입 저장 가능.

val settings: SharedPreferences = getSharedPreferences("dico", MODE_PRIVATE)
val editor: SharedPreferences.Editor = settings.edit()
editor.putBoolean("boolean", true)
editor.putFloat("float", 0.1f)
editor.putInt("int", 0)
editor.putLong("long", 1)
editor.putString("string", "DICO")
editor.commit()

읽기

키를 통해 데이터를 가져오며, 값이 없을 경우 두번째 인자를 반환한다.

val settings: SharedPreferences = getSharedPreferences("dico", MODE_PRIVATE)
settings.getBoolean("boolean", false)
settings.getFloat("float", 0f)
settings.getInt("int", 1)
settings.getLong("long", 0)
settings.getString("string", "dico")

삭제

val settings: SharedPreferences = getSharedPreferences("dico", MODE_PRIVATE)
val editor: SharedPreferences.Editor = settings.edit()
editor.remove("int")	// 특정 데이터 삭제
editor.clear()		// 전부 삭제
editor.commit()

사용

어플리케이션 최초 실행 확인하기

val settings: SharedPreferences = getSharedPreferences("dico", MODE_PRIVATE)

if(!settings.getBoolean("isFirst", false))
{
    val editor: SharedPreferences.Editor = settings.edit()
    editor.putBoolean("isFirst", true)
    editor.commit()
    Log.d("DICO", "FIRST")
}
else
{
    Log.d("DICO", "Hi")
}

DB와 마찬가지로 저장, 삭제 후 commit 필수.

SharedPreferences