1. 설정화면(Preference)를 사용하기 위하여 의존성을 주입한다.
//설정화면에서 사용할 preference
implementation 'androidx.preference:preference:1.1.0-alpha01'
2. 설정 화면을 구현한다. (res>xml 폴더 생성, XML Resource File)
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="{세팅 타이틀}">
<CheckBoxPreference
android:title="{타이틀로 쓸 내용}"
android:summary="{작은 글씨로 상세 설명을 보여주는 곳}"
android:key="chbox"
/>
<ListPreference
android:title="Ringtone"
android:summary="벨소리를 선택할 수 있습니다."
android:key="ls_alarm_bell_choice"
android:entries="@array/Ringtone"
android:entryValues="@array/Ringtone"
/>
</PreferenceCategory>
<SwitchPreference
android:title="{타이틀로 쓸 내용}"
android:summary="{작은 글씨로 상세 설명을 보여주는 곳}"
android:key="switch"
/>
</PreferenceScreen>
* CheckBoxPreference는 설정을 체크하거나 해제할 수 있도록 지원해준다.
* SwitchPreference는 설정을 on/off 할 수 있도록 지원해준다.
* ListPreference는 선택 시 팝업 창으로 선택할 수 있는 리스트들이 뿌려지는데, 이건 values/strings.xml에서 선언해준다.
2-1) values/strings.xml에 리스트 추가한다.
<string-array name="Ringtone">
<item>aaa</item>
<item>bbb</item>
<item>ccc</item>
<item>ddd</item>
</string-array>
* string-array의 이름을 name으로 주었으므로 @array/Ringtone을 가져오면 해당 item들이 자동으로 뿌려진다.
3. 알람을 세팅해준 xml을 환경 설정 프래그먼트(PreferenceFragment)에 접착시킬 클래스를 하나 생성한다.
class SettingsPreference: PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.alarm_settings_layout)
}
}
4. 빈 액티비티를 이용하여 설정 화면을 연다.
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_setting"
android:name="com.example.{프로젝트명}.fragment.{xml 연결시킨 프래그먼트 클래스명}"
android:layout_width="match_parent"
android:layout_height="match_parent">
</fragment>
'Android > UI-UX 디자인' 카테고리의 다른 글
[Android/WebView]기초 #1. 주소를 가져와 화면에 호출 (0) | 2021.09.23 |
---|---|
[Android/Layout]리사이클러뷰 내 Swipe 기능으로 리스트 새로고침 (0) | 2021.05.16 |
[Android/Layout]DB 데이터를 Fragment 내 RecyclerView에 뿌리기(MS-SQL) (0) | 2021.05.08 |
[Android/Layout]Fragment에서 버튼을 생성하여 버튼 클릭 시 Activity로 intent하기 (0) | 2021.05.08 |
[Android/Layout]BottomNavigationView와 ViewPager2를 이용한 화면 구축 (0) | 2021.05.08 |