키-값 데이터 저장
저장하려는 키-값 컬렉션이 비교적 작은 경우 SharedPreferences
api를 사용해야 한다. SharedPreferences
객체는 키-값 쌍이 포함된 파일을 가르키며 읽고 쓸수 있는 간단한 메서드를 제공한다.
// sharedPreference
val sharedPreference = getShardPreferences("sp1", Context.MODE_PRIVATE)
Mode
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