[Android] Preferences
👩Preferences
- 안드로이드의 저장 방식 중 하나
- 다수의 매개체에 대한 data와 같은 많은 양의 데이터 저장 : SQLite
- application 설정 data와 같은 유일하고 적은 데이터 저장 : preferences
👩Preferences Screen
- 사용자에게 환경 설정 화면을 제공할 경우 사용할 수 있다.
- UI를 통해서 preferences를 사용할 수 있도록 제공되는 개념이다.
- preferenceFragment를 사용하며 저장기능까지 모두 구현되어 있다.
🙋♀️Preferences에 데이터 저장 및 불러오기
- 제공되는 preferences screen을 사용하기 이전에 특정 데이터를 preferences에 저장하고 불러오는 과정을 먼저 살펴보자.
☝ 데이터 저장하기
- preferences 객체 추출 시 모드
- MODE_PRIVATE: 모든 정보 삭제 후 재저장
- MODE_APPEND: 덮어 씌우기
✌ 데이터 불러오기
🙋♀️Preferences Screen 사용하기
☝ 1. preferences library 설정하기
- 상단의 File - project structure 클릭!
- preferences library dependency 추가하기
- 해당 사진까지 진행한 후, library dependency를 눌러 preference를 검색해 해당 library를 적용한다.
- 위 과정이 오래걸린다면 직접 library를 설정할 수 있다. (module: gradle 파일)
✌ 2. xml directory 생성하기
- res directory - xml directory 생성하기
- xml resource file 추가하여 preferenceScreen 만들기
👌 3. preferences screen 설정하기
- 사용자가 환경 설정을 하기 위해 필요한 버튼, 스위치 등을 가지고 직접 xml을 구성할 필요가 없다.
-
두 번째 단계에서 생성한 xml resource file이 사용자가 환경 설정을 하는데 사용될 xml이 된다.
🌟여기가 중요🌟
- 해당 xml이 보여질 activity는 PreferenceFragmentCompat()을 상속해야 한다.
✋ 4. preference screen에 다양한 요소 추가하기
요소 중 두 개의 요소의 설정값들을 살펴보며 각 설정이 어떠한 역할을 하는 지 살펴보겠다!
설정 | 값 |
---|---|
default value | 최초로 나타났을 때 자동으로 저장되는 값으로 변경할 경우 재설치를 해야 한다. |
key | data 저장 시 사용할 이름으로 불러올 때도 해당 값을 사용한다. |
title | 환경 설정 화면에 해당 요소가 표시될 이름 |
summary | title 밑에 나타날 요약 문자열 |
summaryOn | summary는 무시되고, on일 경우 나타나는 요약 문자열(스위치) |
summaryOff | summary는 무시되고, off일 경우 나타나는 요약 문자열(스위치) |
singleline | true일 경우, 한 줄만 입력이 가능하다. |
dependency | 설정한 요소가 true/false냐에 따라 해당 요소가 활성/비활성이 된다. (dependency로 주로 switch를 많이 사용한다.) |
👩 여기서 잠깐❕❕ 리스트 요소의 경우 알아야 할 부분이 있어 따로 살펴보자❕❕
🔔 리스트 요소: 단일/ 다중 선택
-
리스트 요소를 추가할 경우, 단일/ 다중 선택이 가능한 리스트를 골라 추가할 수 있다.
여기서 중요한 점!
- 리스트 요소를 사용할 때 팝업으로 창이 뜨면서 해당 값들을 설정해야 한다.
- entries resource: 리스트 선택 시 화면 상에 보여질 문자열들
- entry values resource: 화면 상에 보여지는 요소들에 매칭되는 실제 코드에서 사용될 값들
- defaultvalue resource(다중 선택 사용 시): 다중 선택에서 처음에 선택되어질 값들
- 해당 값들은 strings.xml에 다음과 같이 추가한다.
🖐 5. preferences에서 저장된 값 가져오기
👩 이렇게 설정한 요소들은 값이 변경될 때마다 자동으로 preferences에 저장이 된다. 그렇다면 마지막으로 이렇게 저장된 값들을 가져오는 과정을 살펴보자!
생각보다 내용이 길어져서 두개의 포스팅으로 나눌까 고민했지만 내용만 본다면 어려울게 없는 내용이라 한 포스팅으로 마무리한다!! 오늘도 끝!!
📃참고
- 인프런 윤재성의 Kotlin 기반 안드로이드 앱 개발 Part3 수강
댓글남기기