TIL. Kotlin SharedPreferences API

Devback·2021년 1월 10일
0

Kotlin

목록 보기
7/8
post-thumbnail

SharedPreferences

키-값 데이터 저장
저장하려는 키-값 컬렉션이 비교적 작은 경우 SharedPreferences api를 사용해야 한다. SharedPreferences 객체는 키-값 쌍이 포함된 파일을 가르키며 읽고 쓸수 있는 간단한 메서드를 제공한다.

SharedPreferences 값 가져오기

// sharedPreference 
val sharedPreference = getShardPreferences("sp1", Context.MODE_PRIVATE)

Mode

  • MODE_PRIVATE : 생성한 application에서만 사용 가능
  • MODE_WORLD_READABLE : 다른 application 사용 가능 -> 읽을수만 있다
  • MODE_WORLD_WRITABLE : 다른 application 사용 가능 -> 기록도 가능
  • MODE_MULTI_PROCESS : 이미 호출되어 사용중인지 체크
  • MODE_APPEND: 기존 preference에 신규로 추가

SharedPreferences 값 변경하기

SharedPreferences의 값을 변경하고 edit이라는 메서드를 사용해야한다. 이 메서드는 보통 editor라는 변수에 담는다.

val editor: SharedPreferences.Editor = sharedPreference.edit()

읽기, 수정, 삭제

package com.example.android_prac

import android.content.Context
import android.content.SharedPreferences
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import kotlinx.android.synthetic.main.activity_shared_preferenced.*

class SharedPreferenced : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_shared_preferenced)


        //SharedPreference
        val sharedPreference = getSharedPreferences("sp1", Context.MODE_PRIVATE)
 
        val editor: SharedPreferences.Editor = sharedPreference.edit()

        sh_button.setOnClickListener{
            editor.putString("hello", "안녕하세요")
            editor.putString("hello1", "안녕하세요111")
            editor.commit()
        }

        read.setOnClickListener{
        // 데이터 값을 가져와 읽을 때 getsString 두 번째 인자에 초기값을 입력해 줘야한다. 
            val value1 = sharedPreference.getString("hello", "데이터 없음")
            val value2 = sharedPreference.getString("hello1", "데이터 없음")
            editor.commit()
            Log.d("key1", "value1: $value1")
            Log.d("key1", "value2: $value2")
        }

        delte_part.setOnClickListener{
            editor.remove("hello1")
            editor.commit()
        }
		
        
        delte_all.setOnClickListener{
        
            editor.clear()
            editor.commit()
        }
    }
}

위의 코드에서는 putString이라는 메서드만 사용했는데 putInt와 같이 문자열을 제외한 데이터 타입도 쓸 수 있다.

우리가 깃을 이용할 때 commit를 하는것처럼 editor를 사용하면 commit를 사용해야 한다.

참고: http://www.kotlincodes.com/kotlin/shared-preferences-with-kotlin/
https://developer.android.com/training/data-storage/shared-preferences

profile
나랑 같이 개발할 사람🖐

0개의 댓글