728x90
반응형
Preference
Android에서는 여러 타입의 설정 항목 UI 컴포넌트를 제공하며, 이들을 XML 코드로 PreferenceFragmentCompat 안에서 사용할 수 있다.
Preference 종류
1. Preference : 기본 텍스트 항목, 클릭만 가능
- 주요 속성 : android:key, android:title, android:summary
2. EditTextPreference : 사용자에게 문자열 입력 받음
- 주요 속성 : defaultValue, inputType, dialogTitle
3. SwitchPreferenceCompat : ON/OFF 스위치
- 주요 속성 : defaultValue(true/false)
4. CheckBoxPreference : 체크박스 UI(과거사용)
- 주요 속성 : 현재는 SwitchPreferenceCompat 사용을 권장한다.
5. List Preference : 리스트에서 선택
- 주요 속성 : entries, entryValues, defaultValue
6. DropDownPreference : 드롭다운 메뉴(ListPreference 대체 UI)
- 주요 속성 : entries, entryValues
7. MultiSelectListPreference : 복수 선택 가능한 리스트
- 주요 속성 : entries, entryValues, defaultValue
8. SeekBarPreference : 슬라이더(숫자 조절용)
- 주요 속성 : min, max, defaultValue, showSeekBarValue
9. PreferenceCategory : 설정 그룹 묶음용 헤더
- 주요 속성 : title
10. PreferenceScreen : 설정 항목 그룹화용 컨테이너(루트 또는 중첩 가능)
주요 기능
- 다양한 설정이 가능한 위젯을 제공한다.
- 설정값은 자동으로 SharedPreferences에 저장된다.
- 설정 변경 감지 이벤트로 쉽게 구현이 가능하다.
예제코드 XML(모든 종류 포함)
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="계정 설정">
<EditTextPreference
android:key="username"
android:title="사용자 이름"
android:defaultValue="Guest" />
<ListPreference
android:key="language"
android:title="언어 선택"
android:entries="@array/lang_names"
android:entryValues="@array/lang_values"
android:defaultValue="ko" />
</PreferenceCategory>
<PreferenceCategory android:title="알림 설정">
<SwitchPreferenceCompat
android:key="notification_enabled"
android:title="알림 허용"
android:defaultValue="true" />
<MultiSelectListPreference
android:key="notification_days"
android:title="알림 요일 선택"
android:entries="@array/days"
android:entryValues="@array/day_keys"
android:defaultValue="@array/default_days" />
</PreferenceCategory>
<PreferenceCategory android:title="기타">
<SeekBarPreference
android:key="volume"
android:title="알림 볼륨"
android:min="0"
android:max="10"
android:defaultValue="5"
android:showSeekBarValue="true" />
<Preference
android:key="open_info"
android:title="앱 정보"
android:summary="버전 및 개발자 정보 보기" />
</PreferenceCategory>
</PreferenceScreen>
** entries / entryValues는 보통 res/values/arrays.xml에 정의한다.
728x90
반응형
'개발 > Android' 카테고리의 다른 글
| [Android] You need to use a Theme.AppCompat theme (or descendant) with this activity (0) | 2025.06.02 |
|---|---|
| [Android] LayoutParams 정리 (0) | 2025.05.26 |
| [Android] Service를 통한 Activity 전환 (0) | 2025.05.09 |
| [Android] Annotaion 개념 정리 및 예제 (0) | 2025.05.07 |
| [Android] Room 개념 정리 및 예제 (1) | 2025.04.23 |