kang9366
Repository
kang9366
글쓰기
설정
전체 방문자
오늘
어제
  • 분류 전체보기 (143)
    • Programming (70)
      • Java (1)
      • C++ (11)
      • Kotlin (12)
      • Keras (2)
      • Android (34)
      • Jetpack Compose (1)
      • Error Solution (7)
    • CS (36)
      • 자료구조 (13)
      • 운영체제 (1)
      • 알고리즘 (4)
      • 컴퓨터 보안 (8)
      • 기타 (10)
    • Data Science (28)
      • 데이터분석 (7)
      • 머신러닝 (14)
      • 딥러닝 (7)

인기 글

최근 글

최근 댓글

Github · Instagram · Facebook
kang9366

Repository

Programming/Android

[Android] SharedPreferences

2022. 11. 26. 04:40

안드로이드 앱 개발을 진행하다 보면 앱의 데이터들을 저장하여 관리해야 할 상황이 존재한다. 데이터의 양이 많거나 중요 데이터의 경우 서버나 DB에 저장해야겠지만, 간단한 설정 값이나 문자열 같은 데이터를 저장하기 위해 DB를 사용하기는 부담스럽기 때문에 SharedPreferences를 사용하는 것이 적합하다.

 

SharedPreferences의 특징

  • 보통 초기 설정값이나 자동 로그인 여부 등 간단한 값을 저장하기 위해 사용
  • Application에 파일 형태로 데이터를 저장한다.
  • Application이 삭제되기 전까지 저장한 데이터가 보존된다.
  • Key-value 방식

 

MODE의 종류

MODE_PRIVATE : 생성한 Application에서만 사용 가능하다.
MODE_WORLD_READABLE : 외부 App에서 사용 가능, But 읽기만 가능
MODE_WORLD_WRITEABLE : 외부 App에서 사용 가능, 읽기/쓰기 가능

 

사용 방법

데이터 저장

1. 애플리케이션 Context로부터 SharedPreference에 값 저장하기

binding.saveBtn.setOnClickListener {
            val sharedPreference = getSharedPreferences("sp1", MODE_PRIVATE)
            val editor  : SharedPreferences.Editor = sharedPreference.edit()
            editor.putString("hello","안녕하세요")
            editor.putString("good bye","안녕히 가세요")

            editor.commit() // data 저장!
        }

 

2. 데이터 불러오기

binding.loadBtn .setOnClickListener {
            val sharedPreference = getSharedPreferences("sp1", MODE_PRIVATE)
            val value1 = sharedPreference.getString("hello", "데이터 없다1")
            val value2 = sharedPreference.getString("good bye", "데이터 없다2")
            Log.d("key-value", "Value 1 : " + value1)
            Log.d("key-value", "Value 2 : " + value2)

        }

 

3. 데이터 삭제하기

binding.deleteBtn.setOnClickListener {
            val sharedPreference = getSharedPreferences("sp1", MODE_PRIVATE)
            val editor = sharedPreference.edit()

            editor.remove("hello")
            // 전체 삭제는 editor.clear()
            editor.commit()
        }

 

설정 저장

저작자표시 비영리 변경금지

'Programming > Android' 카테고리의 다른 글

[Android] RecyclerView  (0) 2022.11.26
[Android] SQLite  (0) 2022.11.26
[Android] 유저 알림(Toast, Vibration, Beep)  (0) 2022.11.26
[Android] Permission  (0) 2022.11.26
[Android] Action Bar  (0) 2022.11.23
    'Programming/Android' 카테고리의 다른 글
    • [Android] RecyclerView
    • [Android] SQLite
    • [Android] 유저 알림(Toast, Vibration, Beep)
    • [Android] Permission
    kang9366
    kang9366

    티스토리툴바