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