O'Reilly logo

Android™ Tablet Application Development For Dummies® by Donn Felker

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required