Working with the PreferenceActivity Class
Defining a preferences screen is fairly simple: Provide the values to the necessary attributes and you’re done. Though the preferences screen may be defined in XML, simply defining it in XML doesn’t mean that it will show up onscreen. To display your preferences screen, you create a PreferenceActivity.
The PreferenceActivity shows a hierarchy of preferences onscreen according to a preferences file defined in XML — such as the one you may have just created. The preferences can span multiple screens (if multiple PreferenceScreen objects are present and nested). These preferences are automatically saved to SharedPreferences. As a bonus, the preferences that are shown automatically follow the visual style of the system preferences, which allows your application to have a consistent user experience in conjunction with the default Android platform.
To inflate and display the PreferenceScreen you may have just built, add an activity that derives from PreferenceActivity to your application and name it TaskPreferences. Add the code in Listing 15-2.
Listing 15-2: The TaskPreferences File
public class TaskPreferences extends PreferenceActivity { →1
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.task_preferences); →5
EditTextPreference timeDefault = (EditTextPreference)
findPreference(getString(R.string.pref_default_time_from_now_key)); →8
timeDefault.getEditText().setKeyListener(DigitsKeyListener.getInstance()); ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access