What’s Your Preference: Part Two

In a previous post, we covered the basics of the new preference system in Android. To recap: you can define preference characteristics in an XML file. This in turn gives you an Android-generated preference screen, which you can launch from an activity. The results are stored in the SharedPreferences for your application for later retrieval. Today, we will continue our look at the preferences UI, in an excerpt from The Busy Coder’s Guide to Android Development.

If you have a lot of preferences for users to set, having them all in one big list may become troublesome. Android’s preference framework gives you a few ways to impose a bit of structure on your bag of preferences, including categories and screens.

Categories are added via a PreferenceCategory element in your preference XML and are used to group together related preferences. Rather than have your preferences all as children of the root PreferenceScreen, you can put a few PreferenceCategory elements in the PreferenceScreen, and then put your preferences in their appropriate categories. Visually, this adds a divider with the category title between groups of preferences.

If you have lots and lots of preferences — more than is convenient for users to scroll through — you can also put them on separate “screens” by introducing the PreferenceScreen element.

Any children of PreferenceScreen go on their own screen. If you nest PreferenceScreens, the parent screen displays the screen as a placeholder entry — tapping that entry brings up the child screen.

For example, here is a preference XML file that contains both PreferenceCategory and nested PreferenceScreen elements:

[sourcecode language=’xml’]


The result, when you use this preference XML with your PreferenceActivity implementation, is a categorized list of elements:

A preferences UI showing categories and the launch-point for a secondary screen
A preferences UI showing categories and the launch-point for a secondary screen

And, if you tap on the Detail Screen entry, you are taken to the child preference screen:

The secondary screen, launched from the main preferences activity
The secondary screen, launched from the main preferences activity

Next time, in the third and final(?) part of this series of blog posts, we will look at elements that support free-form text entry or a selection of an item out of a list.

Note: Select outbound links may include affiliate tracking codes. Revenue generated from any potential purchases is used to fund AndroidGuys. Read our policy.



  1. In this child preference screen, how do i bring up the options menu. I’m not able to do it. But the options menu comes up in the parent screen.

  2. is who they will be doing business…

    with. you get a better response when you can just be yourself.8) link it up! now, you don’t want to go crazy with the linking, but you do want to give your reader as much value as possible. you want to…

Comments are closed.