Android의 SharedPreferences

May 05 2023
오늘은 샘플 애플리케이션으로 데이터를 저장하는 가장 쉬운 방법을 살펴보겠습니다. 일반적으로 데이터를 저장한다고 하면 SQL, MongoDB 등을 먼저 생각합니다.

오늘은 샘플 애플리케이션으로 데이터를 저장하는 가장 쉬운 방법을 살펴보겠습니다. 일반적으로 우리는 데이터를 저장한다고 하면 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인지 확인하는 것을 잊지 마십시오. 깨끗한 코드, 안정적인 코드