본 글은 Android Settings 페이지를 참고로 작성되었습니다. Android Application을 만들다 보면 설정 화면이 필요합니다. 어떻게 할 수 있을 까요? 간단히 SettingsActivity를 생성하고 여기에 필요에 따라 EditText, ListView, Button, CheckBox 등의 View를 그려주면 됩니다. 그리고 각 View Event를 구현하고 변경된 값을 File, SharedPreference, 혹은 Database 등에 저장해주면 됩니다. 그런데 Android에서는 좀더 스마트한 방법을 제공해주고 있습니다. 바로 Preference 입니다. 설정 화면을 만들기 위해 위와 같이 View를 직접 그리는 대신, Preference와 그 SubClass들을 XML에 정의하여 만들 수 있습니다. 일반적으로 설정 화면은 ListView로 보여지는데요. 이때 각 List 하나의 항목 당 하나의 설정 값을 저장/변경/관리하게 됩니다. 그리고 앞서 언급한 Preference 객체가 바로 이 하나의 설정 항목에 해당됩니다. 즉 5개의 설정을 관리할 수 있는 설정 화면을 위해서는 5개의 Preference 객체가 필요하다는 거죠. Preference에는 대표적으로 다음과 같은 SubClass들이 있습니다. CheckBoxPreference EditTextPreference ListPreference 각 이름을 보시면 어떤 설정 메뉴를 만들 수 있는지 알 수 있을 겁니다. Preference는 key-value 쌍으로 설정 값을 저장하며, 그 저장 값은 SharedPreference에 저장됩니다. 사용자가 설정 값을 변경하면 시스템은 그 값을 SharedPreference에 업데이트하므로 설정 값을 저장하기 위해 개발자가 직접 SharedPreference에 접근할 필요는 없습니다. 오직 설정 값을 읽어 적합한 UI를 그리거나 데이터를 보여주기 위해서만