Android의 SharedPreferences

오늘은 샘플 애플리케이션으로 데이터를 저장하는 가장 쉬운 방법을 살펴보겠습니다. 일반적으로 우리는 데이터를 저장한다고 하면 SQL, MongoDB 등을 먼저 생각합니다. 하지만 단순한 데이터 에는 필요하지 않다는 것을 곧 알게 될 것입니다 .
간단한 데이터라고 하면 일반적으로 사용자의 나이 , 출신 국가, 선호 설정 과 같은 데이터를 유지합니다 . 이 데이터는 사용자가 애플리케이션을 닫아도 손실되지 않습니다.
SharedPreferences란 무엇입니까?
추가할 것이 없이 간단한 데이터를 유지할 수 있습니다. Key-Value 쌍 으로 작동하는 구조입니다 . 보유할 수 있는 데이터 유형은 다음으로 제한됩니다. Int, Boolean, Float, Long 및 String.
이제 사용자의 나이를 가져와서 저장하는 애플리케이션에서 이 구조를 사용하겠습니다. ( 여기에 GitHub 링크를 드롭합니다 .)
class MainActivity : AppCompatActivity() {
private lateinit var preferences : SharedPreferences
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
preferences = this.getSharedPreferences("com.aliduman.savemyage"
, Context.MODE_PRIVATE)
}
이것 :
현재 활동을 보여주기 위해 사용합니다.
com.aliduman.savemyage:
이 부분에서는 이름만 묻습니다. 일반적으로 이 부분에 패키지 이름을 넣습니다 .
Context.MODE_PRIVATE:
모드는 앱의 기본 설정에 액세스할 수 있는 사용자를 정의합니다. 비공개는 기본 모드 이며 이 앱에서만 액세스할 수 있도록 설정합니다.

정의 및 설정을 만든 후 SharedPreferences를 사용하겠습니다 . 우리의 목표는 사용자의 나이를 입력하고 저장한 다음 이 나이를 저장하고 애플리케이션을 닫고 연 후에 사용자에게 보여주는 것입니다.
var currentAge = preferences.getInt("age",-1)
getInt():
이 메서드는 주어진 값을 반환합니다. 이전에 생성되지 않은 경우 생성됩니다.
나이:
이것이 우리가 지키고자 하는 가치의 핵심입니다.
-1:
데이터가 입력되지 않은 경우 기본적으로 값을 할당하는 데 사용하는 이 매개변수입니다.
if (currentAge != -1) { //if user saved age before..
age_text.hint = currentAge.toString()
} else {//if first time user saved age
save_button.setOnClickListener {
var ageInput = Integer.valueOf(age_text.text.toString())
preferences.edit().putInt("age", ageInput).apply() //We save it to SharedPreferences.
}
}
편집하다()
우리는 그것을 사용하여 우리의 가치를 변경하거나 할당합니다.
풋인트()
우리는 그것을 사용하여 우리가 저장하는 것에 데이터를 넣습니다.
적용하다()
이 메서드는 이러한 모든 변경 사항을 구현하는 데 필요합니다.

사용자는 숫자 23을 입력하고 저장 버튼을 누릅니다.↑

해피엔딩, 사용자가 애플리케이션에 다시 들어갈 때 알고리즘과 SharedPreferences로 나이를 보여줄 수 있습니다.↑
!경고!
SharedPreferences에 집중하기 위해 null 검사와 같은 몇 가지 중요한 단계를 건너뛰었습니다. 사용자가 입력한 데이터가 null인지 확인하는 것을 잊지 마십시오. 깨끗한 코드, 안정적인 코드