Preference View(설정창 구현하기)
앱 내 설정화면을 구현하기 위해 최적인 레이아웃이 있습니다. 구글에서 라이브러리 형태로 제공 중인 PreferenceFragmentCompat 이가 있습니다.
관련 링크: https://developer.android.com/guide/topics/ui/settings?hl=ko
https://developer.android.com/reference/androidx/preference/PreferenceFragmentCompat
구현방법
일단, AndroidX 아티팩트를 사용중이기 때문에, 관련 라이브러리로 추가하겠습니다.
implementation 'androidx.preference:preference:1.1.0-alpha01'
그 다음, res/xml 폴더를 생성하여 preference.xml 파일을 생성하고, 아래와 같이 코드를 작성합니다.
<androidx.preference.PreferenceScreen
xmlns:app="http://schemas.android.com/apk/res-auto">
<SwitchPreferenceCompat
app:key="notifications"
app:title="Enable message notifications"/>
<Preference
app:key="feedback"
app:title="Send feedback"
app:summary="Report technical issues or suggest new features"/>
</androidx.preference.PreferenceScreen>
저는 계층 구조 확장을 통해, 설정 화면을 좀 더 제 입맛대로 구성하도록 하겠습니다.
일단, PreferenceFragment 클래스를 생성합니다.
public class PreferenceFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.preference, rootKey);
}
}
setPreferencesFromResource에서 아까 만들어둔 preference xml을 넣어줍니다.
그리고 이를 임포트 시켜줄 PreferenceActivity를 생성합니다. xml 레이아웃은 마음대로 만들어 주세요. 단, 설정 화면이 들어갈 FrameLayout을 만들어 주시면 됩니다.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivitySettingsBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_settings);
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.frameLayout, new SettingsFragment())
.commit();
}
위 코드를 만들어둔 PreferenceActivity의 onCreate에 넣습니다.
완성!
'Android' 카테고리의 다른 글
Lottie 를 이용해 화려한 애니메이션 넣기 (0) | 2019.09.20 |
---|---|
RecyclerView 에서 Divider (구분선) 추가하기 (0) | 2019.08.24 |
ViewPager 사용 시 양쪽 뷰 미리보기 (4) | 2019.06.06 |
[News] 안드로이드, 64비트 지원 '필수' (0) | 2019.01.21 |
레이아웃 디자인에 도움이 되는 사이트 (0) | 2018.12.22 |
댓글
이 글 공유하기
다른 글
-
Lottie 를 이용해 화려한 애니메이션 넣기
Lottie 를 이용해 화려한 애니메이션 넣기
2019.09.20 -
RecyclerView 에서 Divider (구분선) 추가하기
RecyclerView 에서 Divider (구분선) 추가하기
2019.08.24 -
ViewPager 사용 시 양쪽 뷰 미리보기
ViewPager 사용 시 양쪽 뷰 미리보기
2019.06.06 -
[News] 안드로이드, 64비트 지원 '필수'
[News] 안드로이드, 64비트 지원 '필수'
2019.01.21