안드로이드 앱 개발을 진행하다 보면, 앱의 데이터들을 저장하여 관리해야 할 상황이 존재한다. 데이터의 양이 많거나 중요 데이터의 경우 서버나 DB에 저장해야겠지만, 간단한 설정 값이나 문자열 같은 데이터를 저장하기 위해 DB를 사용하기는 부담스럽기 때문에 SharedPreferences를 사용하는 것이 적합하다.
MODE의 종류
- MODE_PRIVATE : 생성한 Application에서만 사용 가능하다.
- MODE_WORLD_READABLE : 외부 App에서 사용 가능, But 읽기만 가능
- MODE_WORLD_WRITEABLE : 외부 App에서 사용 가능, 읽기/쓰기 가능
- Mode
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 저장!
}
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)
}
binding.deleteBtn.setOnClickListener {
val sharedPreference = getSharedPreferences("sp1", MODE_PRIVATE)
val editor = sharedPreference.edit()
editor.remove("hello")
// 전체 삭제는 editor.clear()
editor.commit()
}
불러오기 버튼 클릭 실행하면 저장한 값이 Log로 출력된다.
삭제 버튼 클릭시 저장한 값이 삭제되고 Default 값이 출력된다.