Android APIs
public final class

PreferenceScreen

extends PreferenceGroup
java.lang.Object
   ↳ android.support.v7.preference.Preference
     ↳ android.support.v7.preference.PreferenceGroup
       ↳ android.support.v7.preference.PreferenceScreen

Class Overview

Represents a top-level Preference that is the root of a Preference hierarchy. A PreferenceFragmentCompat points to an instance of this class to show the preferences. To instantiate this class, use createPreferenceScreen(android.content.Context).

    This class can appear in two places:
  • When a PreferenceFragmentCompat points to this, it is used as the root and is not shown (only the contained preferences are shown).
  • When it appears inside another preference hierarchy, it is shown and serves as the gateway to another screen of preferences (either by showing another screen of preferences as a Dialog or via a startActivity(android.content.Intent) from the getIntent()). The children of this PreferenceScreen are NOT shown in the screen that this PreferenceScreen is shown in. Instead, a separate screen will be shown when this preference is clicked.

Here's an example XML layout of a PreferenceScreen:

 <PreferenceScreen
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:key="first_preferencescreen">
 <CheckBoxPreference
 android:key="wifi enabled"
 android:title="WiFi" />
 <PreferenceScreen
 android:key="second_preferencescreen"
 android:title="WiFi settings">
 <CheckBoxPreference
 android:key="prefer wifi"
 android:title="Prefer WiFi" />
 ... other preferences here ...
 </PreferenceScreen>
 </PreferenceScreen> 

In this example, the "first_preferencescreen" will be used as the root of the hierarchy and given to a PreferenceFragment or PreferenceFragmentCompat. The first screen will show preferences "WiFi" (which can be used to quickly enable/disable WiFi) and "WiFi settings". The "WiFi settings" is the "second_preferencescreen" and when clicked will show another screen of preferences such as "Prefer WiFi" (and the other preferences that are children of the "second_preferencescreen" tag).

Developer Guides

For information about building a settings UI with Preferences, read the Settings guide.

Summary

[Expand]
Inherited XML Attributes
From class android.support.v7.preference.PreferenceGroup
From class android.support.v7.preference.Preference
[Expand]
Inherited Constants
From class android.support.v7.preference.Preference
Protected Methods
boolean isOnSameScreenAsChildren()
Whether this preference group should be shown on the same screen as its contained preferences.
void onClick()
Processes a click on the preference.
[Expand]
Inherited Methods
From class android.support.v7.preference.PreferenceGroup
From class android.support.v7.preference.Preference
From class java.lang.Object
From interface java.lang.Comparable

Protected Methods

protected boolean isOnSameScreenAsChildren ()

Whether this preference group should be shown on the same screen as its contained preferences.

Returns
  • True if the contained preferences should be shown on the same screen as this preference.

protected void onClick ()

Processes a click on the preference. This includes saving the value to the SharedPreferences. However, the overridden method should call callChangeListener(Object) to make sure the client wants to update the preference's state with the new value.