📱 Android

[Android] SharedPreferences 사용하기

콩드로이드 2021. 1. 19. 21:38

 

SharedPreferences란?

 

✔ 데이터가 파일로 저장되고, 저장하려는 키-값 컬렉션이 비교적 작은 경우에 주로 사용됩니다.

✔ DB를 사용하지 않고, 간단한 데이터들을 저장할 때 주로 쓰이며, 앱을 껐다 켜도 사라지지 않아서 자주 사용하는 인터페이스입니다. 

앱을 삭제하거나, 따로 삭제를 설정해야 값들이 사라집니다.

Key, Value형태로 저장됩니다.

 

 

SharedPreferences 사용법

 

1. KEY 정하기

 위에서 언급했듯이 Key, Value의 형태로 저장되기 때문에, 우선 Key값을 정해줍니다. 

 

2. Value 타입 정하기 

 SharedPreferences에는 String, Int, Boolean, Long 등 다양한 자료형이 저장될 수 있으므로

 어떤 타입을 사용할지 지정해야 합니다.

 

3. Data 저장하기

 위에서 정한 Key, Value를 사용해서 int형 데이터를 저장해보겠습니다.

   

[Java]

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
int count = 99;
editor.putInt("지정할 KEY값", count);
editor.commit();

 

[Kotlin]

val count = 99
val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE) ?: return
    with (sharedPref.edit()) {
        putInt("지정한 KEY값", count)
        commit()
    }
    

 

 

위 예제를 실행하면 아래와 같이 KEY, VALUE가 저장됩니다

"지정한 KEY값" count

4. Data 가져오기

 이제 저장한 값들을 가져와야겠지요

 마찬가지로 KEY값을 사용하면 됩니다

 

sharedPref.getInt("지정한 KEY값", 반환할 기본값)

getInt 함수의 두 번째 인자로 반환할 기본값이 반드시 들어가야합니다

 

[Java]

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
int num = sharedPref.getInt("지정한 KEY값", 0);

 

[Kotlin]

val sharedPref = activity?.getPreferences(Context.MODE_PRIVATE) ?: return
val highScore = sharedPref.getInt("지정한 KEY값", 0)

 


SharedPreferences의 사용법은 위와 같습니다.

보통 SharedPreferences를 선언을 많이 하는 경우엔, KEY값은 클래스로 따로 관리하고 

데이터를 저장하거나 읽는 putInt, getInt 등 함수는 Util로 선언하여 관리하면 편리합니다.