영드로이드개발자
용이의 개발블로그
영드로이드개발자

블로그 메뉴

  • ⭐️ Home
  • 💻 GitHub
  • ❤️ Instagram
  • 👍 LinkedIn
  • 분류 전체보기 (44)
    • 공지사항 (1)
    • Daily 공부방 (0)
    • 프로그래밍 언어 (8)
      • Java (7)
      • Kotlin (1)
    • 안드로이드(Kotlin) (16)
    • 코딩테스트(Java) (11)
      • 기초 자료구조 (3)
      • 백준 (0)
      • 프로그래머스 1단계 (5)
      • 프로그래머스 2단계 (3)
    • 알고리즘 정리 (5)
    • 주간 목표계획 및 회고 (2)
    • Project (1)
      • Android App - 오마이코인 (1)

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
영드로이드개발자

용이의 개발블로그

Kotlin 코틀린의 SharedPreferences
안드로이드(Kotlin)

Kotlin 코틀린의 SharedPreferences

2022. 8. 8. 14:31
반응형

SharedPreferences

정의

간단한 데이터를 저장하고 불러올 수 있다.

 

어플을 꺼도 데이터가 유지된다는 점에서 간편한 데이터베이스 역할을 할 수 있다.

 

ShardPreferences는 어플리케이션에서 파일 형태로 데이터를 저장한다.

 

데이터는 (key, value) 형태로 shared_prefs 폴더 안에 xml 파일로 저장된다. 해당 파일은 어플리케이션이 삭제되기 전까지 보존된다.

 

SharedPreferences 사용방법

SharedPreferences는 app에서 전역적으로 사용한다.

 

따라서 싱글톤 패턴을 사용하여 앱 어디든 접근이 가능하게 만드는 것이 좋다.

 

SharedPreferences 클래스는 앱에 있는 다른 액티비티보다 먼저 생성되어야 다른 곳에 데이터를 넘겨줄 수 있다.

 

따라서 Application에 해당하는 클래스를 생성하고나서 전역변수로 ShardPreferences를 가져야 한다.

Application을 상속받는 MyApplication을 생성하고 onCreate보다 preferences를 먼저 초기화하여 준다.

 

MyApplication.kt

class MyApplication : Application() {
    companion object{
        lateinit var preferences: PreferenceUtil
    }

    override fun onCreate() {
        preferences = PreferenceUtil(applicationContext)
        super.onCreate()
    }
}

 

 

PreferenceUtil.kt

class PreferenceUtil(context: Context) {
    private val preferences: SharedPreferences = context.getSharedPreferences("prefs_name", Context.MODE_PRIVATE)

    fun getString(key: String, defValue: String):String{
        return preferences.getString(key,defValue).toString()
    }

    fun setString(key: String, defValue: String){
        preferences.edit().putString(key, defValue).apply()
    }
}

 

이제 이것을 통해

MyApplication.preferences.getString("연습","입니다.")

MyApplication.preferences.setString("연습","안해요.")

이렇게 사용하면 된다.

반응형
저작자표시 비영리 변경금지 (새창열림)

'안드로이드(Kotlin)' 카테고리의 다른 글

Kotlin 코틀린의 Retrofit  (0) 2022.08.26
Kotlin 코틀린의 RecyclerView  (0) 2022.08.25
Kotlin 코틀린의 Context  (0) 2022.08.08
Kotlin 코틀린의 Handler 와 Looper  (0) 2022.08.04
Kotlin 코틀린의 Intent와 Inflate  (0) 2022.08.04
    '안드로이드(Kotlin)' 카테고리의 다른 글
    • Kotlin 코틀린의 Retrofit
    • Kotlin 코틀린의 RecyclerView
    • Kotlin 코틀린의 Context
    • Kotlin 코틀린의 Handler 와 Looper
    영드로이드개발자
    영드로이드개발자
    도전을 즐기는 안드로이드 개발자 현영우의 개발 Blog

    티스토리툴바