Preference View(설정창 구현하기)
앱 내 설정화면을 구현하기 위해 최적인 레이아웃이 있습니다. 구글에서 라이브러리 형태로 제공 중인 PreferenceFragmentCompat 이가 있습니다.
관련 링크: https://developer.android.com/guide/topics/ui/settings?hl=ko
https://developer.android.com/reference/androidx/preference/PreferenceFragmentCompat
PreferenceFragmentCompat | Android Developers
From class androidx.fragment.app.Fragment void dump(String prefix, FileDescriptor fd, PrintWriter writer, String[] args) Print the Fragments's state into the given stream. final boolean equals(Object o) Subclasses can not override equals(). final FragmentA
developer.android.com
구현방법
일단, 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