안드로이드 데이터 영속성 (preferences)

이영준·2023년 3월 17일
0

📌SharedPreferences

간단한 데이터를 저장하기 위해 사용한다.
복잡한 로직이 따로 없다
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의 목적이다.

profile
컴퓨터와 교육 그사이 어딘가

0개의 댓글