본문 바로가기
개발 공부/안드로이드 스튜디오(코틀린)

안드로이드 스튜디오(SharedPreferences란?)

by momo'sdad 2023. 10. 18.

SharedPreferences란?

- 간단한 값 저장에 DB를 사용하기에는 복잡하기 때문에 SharedPreferences를 사용하면 적합하다.

- 보통 초기 설정값이나 자동로그인 여부 등 간단한 값을 저장하기 위해 사용한다.

- 어플리케이션에 파일 형태로 데이터를 저장한다.

=> data/data/패키지명/shared_prefs/SharedPreference이름.xml 위치에 저장

- 어플리케이션이 삭제되기 전까지 보존된다.

​

사용법

​

import android.content.SharedPreferences;

​

1. SharedPreferences인스턴스 얻기

​

getPreferences(int mode)

하나의 액티비티에서만 사용하는 SharedPreferences를 생성한다.

생성되는 SharedPreferences 파일은 해당 액티비티이름으로 생선된다.

하나의 액티비티에서만 사용할 수 있지만 getSharedPreferences()를 사용하면 다른 액티비티에서도 사용가능하다.

​

getSharedPreferences(String name, int mode)

특정 이름을 가진 SharedPreferences를 생성한다.

주로 애플리케이션 전체에서 사용한다.

​

2. SharedPreferences에 데이터 저장하기

​

먼저 데이터를 기록하기 위해 SharedPreferences.Editor 인스턴스를 얻어야 한다.

SharedPreferences test = getSharedPreferences("test", MODE_PRIVATE);

SharedPreferences.Editor editor = test.edit();

editor.putString("First", infoFirst); //First라는 key값으로 infoFirst 데이터를 저장한다.

editor.putString("Second", infoSecond); //Second라는 key값으로 infoSecond 데이터를 저장한다.

editor.commit(); //완료한다.

*저장할 수 있는 데이터타입

- Boolean

- Integer

- Float

- Long

- String

​

3. SharedPreferences에 데이터 불러오기

​

데이터를 불러오기 위해서 getInt()나 getString() 메서드를 사용하여 불러와야 한다.

getInt(KEY, VALUE)

첫번째 인자는 데이터의 키, 두번째 인자는 해당값이 없을경우 반환할 값을 넣어준다.

SharedPreferences test = getSharedPreferences("test", MODE_PRIVATE);

int firstData = test.getInt("First", 0);

​

4. SharedPreferences에 데이터 삭제하기

​

1. 특정 데이터 삭제

SharedPreferences test = getSharedPreferences("test", MODE_PRIVATE);

SharedPreferences.Editor editor = test.edit();

editor.remove("test");

editor.commit();

​

2. 모든 데이터 삭제

SharedPreferences test = getSharedPreferences("test", MODE_PRIVATE);

SharedPreferences.Editor editor = test.edit();

editor.clear();

editor.commit();

​

​

추가 - 객체 저장하기

//Creating a shared preference SharedPreferences
mPrefs = getPreferences(MODE_PRIVATE);

To save

Editor prefsEditor = mPrefs.edit();
Gson gson = new Gson();
String json = gson.toJson(MyObject);
prefsEditor.putString("MyObject", json);
prefsEditor.commit();

To Retreive

Gson gson = new Gson();
String json = mPrefs.getString("MyObject", "");
MyObject obj = gson.fromJson(json, MyObject.class);
반응형