Working with the PreferenceActivity Class

The PreferenceActivity shows a hierarchy of preferences on the screen according to a preferences file defined in XML — such as the one you just created. The preferences can span multiple screens (if multiple PreferenceScreen objects are present and nested). These preferences automatically save to SharedPreferences. As an added bonus, the preferences 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 just built, add an activity that derives from PreferenceActivity to your application. I am going to name mine TaskPreferences. Please add this file to the src/ directory of your project. The code for this file is shown in Listing 17-2.

Listing 17-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());    →9
  }
}

Yes, that's it! That's all the code that is needed to display, edit, and persist preferences in Android! Each numbered line of code is explained as follows:

→1 The TaskPreferences ...

Get Android™ Tablet Application Development For Dummies® now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.