참고 url :
[Android] SharedPreferences 사용하기
키-값 데이터 저장 | Android 개발자 | Android Developers
간단한 상태값이나 문자열을 DB가 아닌, 파일 형태로 저장하는 함수.
이 파일을 앱이 가지고 있기 때문에 앱을 삭제하면 자동적으로 값이 삭제됨.
쓰임 예시 : 앱의 최초실행 여부(boolean 타입으로 넣으면 되겠죠?)
데이터를 타입으로 저장하고, key-value 형태로 저장한다.
※이 함수를 사용할 때, getSharedPreference의 첫 번째 매개값으로 애플리케이션의 이름, 두 번째는 mode값을 받는데, 이 때 mode는 세 가지가 있다.
MODE_PRIVATE는 자기 앱에서만 사용하는 디폴트 값이고,
MODE_WORLD_READABLE 및 MODE_WORLD_WRITEABLE는 API 17레벨부터 지원중단 되었으니.. PRIVATE만 쓴다고 생각해도 될 것 같다.
- SharedPreferences를 등록할 때.
먼저 SharedPrefernece를 선언해야합니다. 이 때, KEY는 저장하는 파일의 KEY 값이 되겠죠?
(저는 Constants 클래스를 따로 만들어 static으로 선언하는 법을 배웠습니다(!). 이렇게 하면 일일히 KEY값을 외워 칠 필요 없이 바로 클래스에서 가져오면 되더라고요. 개인적으로 아주 편했어요.)
이 때, putInt 뿐만 아니라 putString, putBoolean 등 다양한 데이터 형태로 저장할 수 있다.
첫 번째 매개변수로는 key값, 두 번째 매개변수로는 value 값을 저장한다.
(여기서는 getString 값이 KEY 값이 되겠네요. 첫번째에 선언한 key값과는 다른 key입니다.)
SharedPreferences pref = context.getSharedPreferences(KEY, Activity.MODE_PRIVATE)
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt(getString(R.string.saved_high_score_key), newHighScore);
editor.commit();
- SharedPreferences를 읽어올 때
마찬가지로 데이터 타입에 따라 getString, getInt 등으로 저장한다
이 때, 첫 번째 매개변수로는 key의 이름, 두 번 째는 값을 읽어오는데 실패하거나 오류가 나면 기본적으로 출력할 값을 의미한다.
SharedPreferences pref = context.getSharedPreferences(KEY, Activity.MODE_PRIVATE)
int defaultValue = getResources().getInteger(R.integer.saved_high_score_default_key);
int highScore = sharedPref.getInt(getString(R.string.saved_high_score_key), defaultValue);
'Android' 카테고리의 다른 글
Android Studio, JAVA ] sphere Panorama view (0) | 2020.11.20 |
---|---|
Android Studio ] 리사이클러뷰의 어댑터, 뷰홀더를 다른 파일로 만들어보기 (0) | 2020.10.28 |
Android Studio, JAVA] AIDL 서비스 바인딩 (0) | 2020.08.18 |
Android Studio, JAVA] 파이어베이스 등록하기 (0) | 2020.08.13 |
Android Studio, JAVA] mvvc 모델과 LiveData (2) | 2020.08.12 |