간단한 데이터를 저장하기 위해 사용한다.
복잡한 로직이 따로 없다
UI객체 혹은 code에서 저장할 수 있다.
getPreferences는 내부적으로 getSharedPreferences("액티비티 이름", mode)를 호출하는 것이라 getSharedPreferences()를 사용하면 원하는 파일이름을 지정할 수 있다.
class PreferenceActivity : AppCompatActivity() {
private lateinit var prefResultEv :TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_preference)
prefResultEv = findViewById(R.id.pref_result)
val prefs = getSharedPreferences("test", MODE_PRIVATE)
// 정보 추출하기
val v = prefs.getInt("KEY", 0)
// 정보 저장하기
val editor = prefs.edit()
editor.putInt("KEY", v.toInt()+1)
editor.apply()
// editor.commit()
prefResultEv.text = "preference test: $v"
}
}
앱 실행시마다 1씩 pref_result가 증가하도록 하는 코드이다.
이 shared_preferences는 data->data->패키지명 폴더-> shared_preferences 폴더 내에 존재한다.
위의 코드는 test.xml 파일에 preferences 키를 저장하게 된다.
아쉽게도 preference에 list를 넣을 수는 없어서 간단한 데이터만 넣는것이 sharedPreferences의 목적이다.