์ฌ๋ฌ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ
preference ์ด๋ฆ์ผ๋ก ๊ฐ์ ธ์ค๋ฉด ๋๋ค
ex)R.string.preference_file_key
1๊ฐ๋ง ์ ์ฅ, ์ ์ ์
โกset์ ํ์ง ์๊ณ get์ ํ์ ๋๋ฅผ ๋๋นํด์
private fun saveData() {
val pref = getSharedPreferences("pref", 0)
val edit = pref.edit()
edit.putString("name", binding.etText.text.toString())
edit.apply()
}
apply()๋ ๋ฉ๋ชจ๋ฆฌ ๋ด SharedPreferences ๊ฐ์ฒด๋ฅผ ์ฆ์ ๋ณ๊ฒฝํ์ง๋ง ์ ๋ฐ์ดํธ๋ฅผ ๋์คํฌ์ ๋น๋๊ธฐ์ ์ผ๋ก ์ด๋ค. ๋๋ commit()์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ์ ๋๊ธฐ์ ์ผ๋ก ์ธ ์ ์๋ค. ๊ทธ๋ฌ๋ commit()์ ๋๊ธฐ์ ์ด๋ฏ๋ก UI ๋ ๋๋ง์ด ์ผ์์ค์ง๋ ์ ์๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ณธ ์ค๋ ๋์์ ํธ์ถํ๋ ๊ฒ์ ํผํด์ผ ํ๋ค.
์ ์ฅํ ๋ ์ผ๋ ํค๊ฐ์ผ๋ก ๋ถ๋ฌ์ค๋ฉด ๋๋ค.
private fun loadData() {
val pref = getSharedPreferences("pref", 0)
binding.etText.setText(pref.getString("name",""))
}
๐ฏFragment์์ SharedPreferences๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด Activity์ ์ปจํ ์คํธ๋ฅผ ํตํด ์ ๊ทผํด์ผ ํฉ๋๋ค. getSharedPreferences ๋ฉ์๋๋ Context ํด๋์ค์ ๋ฉ์๋์ด๋ฏ๋ก, Fragment ๋ด์์ ์ด๋ฅผ ์ง์ ํธ์ถํ ์ ์์ต๋๋ค. ๋์ getActivity() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ Fragment๊ฐ ํ์ฌ ์ฐ๊ฒฐ๋ Activity์ ์ธ์คํด์ค๋ฅผ ์ป๊ณ , ์ด๋ฅผ ํตํด getSharedPreferences๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค.
private fun saveData() {
// Activity์ ์ปจํ
์คํธ๋ฅผ ์ฌ์ฉํ์ฌ SharedPreferences ์ธ์คํด์ค๋ฅผ ์ป์ต๋๋ค.
val pref = activity?.getSharedPreferences("pref", Context.MODE_PRIVATE)
val edit = pref?.edit()
// SharedPreferences๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค.
edit?.putString("name", binding.etText.text.toString())
// ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํฉ๋๋ค.
edit?.apply()
}
private fun loadData() {
// Activity์ ์ปจํ
์คํธ๋ฅผ ์ฌ์ฉํ์ฌ SharedPreferences ์ธ์คํด์ค๋ฅผ ์ป์ต๋๋ค.
val pref = activity?.getSharedPreferences("pref", Context.MODE_PRIVATE)
// SharedPreferences์์ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ต๋๋ค.
val name = pref?.getString("name", "")
// ๋ถ๋ฌ์จ ๋ฐ์ดํฐ๋ฅผ UI์ ๋ฐ์ํฉ๋๋ค.
binding.etText.setText(name)
}