Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)   
Deprecated in [API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Inherited XML Attrs](https://developer.android.com/reference/android/preference/PreferenceScreen#inhattrs) \| [Inherited Constants](https://developer.android.com/reference/android/preference/PreferenceScreen#inhconstants) \| [Methods](https://developer.android.com/reference/android/preference/PreferenceScreen#pubmethods) \| [Protected Methods](https://developer.android.com/reference/android/preference/PreferenceScreen#promethods) \| [Inherited Methods](https://developer.android.com/reference/android/preference/PreferenceScreen#inhmethods)

# PreferenceScreen

*** ** * ** ***

` public final class PreferenceScreen `   
` ` ` ` ` extends https://developer.android.com/reference/android/preference/PreferenceGroup ` ` implements https://developer.android.com/reference/android/widget/AdapterView.OnItemClickListener, https://developer.android.com/reference/android/content/DialogInterface.OnDismissListener `

|---|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||||
| ↳ | [android.preference.Preference](https://developer.android.com/reference/android/preference/Preference) |||
|   | ↳ | [android.preference.PreferenceGroup](https://developer.android.com/reference/android/preference/PreferenceGroup) ||
|   |   | ↳ | android.preference.PreferenceScreen |

<br />

*** ** * ** ***

<br />

**This class was deprecated in API level 29.**   

Use the [AndroidX](https://developer.android.com/jetpack/androidx) [Preference Library](https://developer.android.com/reference/androidx/preference/package-summary) for consistent behavior across all devices. For more information on using the AndroidX Preference Library see [Settings](https://developer.android.com/guide/topics/ui/settings).

Represents a top-level `https://developer.android.com/reference/android/preference/Preference` that is the root of a Preference hierarchy. A `https://developer.android.com/reference/android/preference/PreferenceActivity` points to an instance of this class to show the preferences. To instantiate this class, use `https://developer.android.com/reference/android/preference/PreferenceManager#createPreferenceScreen(android.content.Context)`.

This class can appear in two places:
- When a `https://developer.android.com/reference/android/preference/PreferenceActivity` 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 `https://developer.android.com/reference/android/app/Dialog` or via a `https://developer.android.com/reference/android/content/Context#startActivity(android.content.Intent)` from the `https://developer.android.com/reference/android/preference/Preference#getIntent()`). The children of this `https://developer.android.com/reference/android/preference/PreferenceScreen` are NOT shown in the screen that this `https://developer.android.com/reference/android/preference/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 `https://developer.android.com/reference/android/preference/PreferenceActivity`. 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](https://developer.android.com/guide/topics/ui/settings) guide.

<br />

**See also:**

- `https://developer.android.com/reference/android/preference/PreferenceCategory`

## Summary

### Inherited XML attributes

From class `https://developer.android.com/reference/android/preference/PreferenceGroup` [`android:orderingFromXml`](https://developer.android.com/reference/android/preference/PreferenceGroup#attr_android:orderingFromXml) Whether to order the Preference under this group as they appear in the XML file. From class `https://developer.android.com/reference/android/preference/Preference` [`android:defaultValue`](https://developer.android.com/reference/android/preference/Preference#attr_android:defaultValue) The default value for the preference, which will be set either if persistence is off or persistence is on and the preference is not found in the persistent storage. [`android:dependency`](https://developer.android.com/reference/android/preference/Preference#attr_android:dependency) The key of another Preference that this Preference will depend on. [`android:enabled`](https://developer.android.com/reference/android/preference/Preference#attr_android:enabled) Whether the Preference is enabled. [`android:fragment`](https://developer.android.com/reference/android/preference/Preference#attr_android:fragment) When used inside of a modern PreferenceActivity, this declares a new PreferenceFragment to be shown when the user selects this item. [`android:icon`](https://developer.android.com/reference/android/preference/Preference#attr_android:icon) The optional icon for the preference. [`android:iconSpaceReserved`](https://developer.android.com/reference/android/preference/Preference#attr_android:iconSpaceReserved) Whether the space for the preference icon view will be reserved. [`android:key`](https://developer.android.com/reference/android/preference/Preference#attr_android:key) The key to store the Preference value. [`android:layout`](https://developer.android.com/reference/android/preference/Preference#attr_android:layout) The layout for the Preference in a PreferenceActivity screen. [`android:order`](https://developer.android.com/reference/android/preference/Preference#attr_android:order) The order for the Preference (lower values are to be ordered first). [`android:persistent`](https://developer.android.com/reference/android/preference/Preference#attr_android:persistent) Whether the Preference stores its value to the storage. [`android:recycleEnabled`](https://developer.android.com/reference/android/preference/Preference#attr_android:recycleEnabled) Whether the preference has enabled to have its view recycled when used in the list view. [`android:selectable`](https://developer.android.com/reference/android/preference/Preference#attr_android:selectable) Whether the Preference is selectable. [`android:shouldDisableView`](https://developer.android.com/reference/android/preference/Preference#attr_android:shouldDisableView) Whether the view of this Preference should be disabled when this Preference is disabled. [`android:singleLineTitle`](https://developer.android.com/reference/android/preference/Preference#attr_android:singleLineTitle) Whether to use single line for the preference title text. [`android:summary`](https://developer.android.com/reference/android/preference/Preference#attr_android:summary) The summary for the Preference. [`android:title`](https://developer.android.com/reference/android/preference/Preference#attr_android:title) The title for the Preference. [`android:widgetLayout`](https://developer.android.com/reference/android/preference/Preference#attr_android:widgetLayout) The layout for the controllable widget portion of a Preference.

### Inherited constants

From class `https://developer.android.com/reference/android/preference/Preference` `int` `https://developer.android.com/reference/android/preference/Preference#DEFAULT_ORDER`

Specify for `https://developer.android.com/reference/android/preference/Preference#setOrder(int)` if a specific order is not required.

| ### Public methods ||
|---|---|
| ` void` | ` https://developer.android.com/reference/android/preference/PreferenceScreen#bind(android.widget.ListView)(https://developer.android.com/reference/android/widget/ListView listView) ` Binds a `https://developer.android.com/reference/android/widget/ListView` to the preferences contained in this `https://developer.android.com/reference/android/preference/PreferenceScreen` via `https://developer.android.com/reference/android/preference/PreferenceScreen#getRootAdapter()`. |
| ` https://developer.android.com/reference/android/app/Dialog` | ` https://developer.android.com/reference/android/preference/PreferenceScreen#getDialog()() ` Used to get a handle to the dialog. |
| ` https://developer.android.com/reference/android/widget/ListAdapter` | ` https://developer.android.com/reference/android/preference/PreferenceScreen#getRootAdapter()() ` Returns an adapter that can be attached to a `https://developer.android.com/reference/android/preference/PreferenceActivity` or `https://developer.android.com/reference/android/preference/PreferenceFragment` to show the preferences contained in this `https://developer.android.com/reference/android/preference/PreferenceScreen`. |
| ` void` | ` https://developer.android.com/reference/android/preference/PreferenceScreen#onDismiss(android.content.DialogInterface)(https://developer.android.com/reference/android/content/DialogInterface dialog) ` This method will be invoked when the dialog is dismissed. |
| ` void` | ` https://developer.android.com/reference/android/preference/PreferenceScreen#onItemClick(android.widget.AdapterView,%20android.view.View,%20int,%20long)(https://developer.android.com/reference/android/widget/AdapterView<T extends https://developer.android.com/reference/android/widget/Adapter> parent, https://developer.android.com/reference/android/view/View view, int position, long id) ` <br /> |

| ### Protected methods ||
|---|---|
| ` boolean` | ` https://developer.android.com/reference/android/preference/PreferenceScreen#isOnSameScreenAsChildren()() ` Whether this preference group should be shown on the same screen as its contained preferences. |
| ` void` | ` https://developer.android.com/reference/android/preference/PreferenceScreen#onClick()() ` Processes a click on the preference. |
| ` https://developer.android.com/reference/android/widget/ListAdapter` | ` https://developer.android.com/reference/android/preference/PreferenceScreen#onCreateRootAdapter()() ` Creates the root adapter. |
| ` void` | ` https://developer.android.com/reference/android/preference/PreferenceScreen#onRestoreInstanceState(android.os.Parcelable)(https://developer.android.com/reference/android/os/Parcelable state) ` Hook allowing a Preference to re-apply a representation of its internal state that had previously been generated by `https://developer.android.com/reference/android/preference/Preference#onSaveInstanceState()`. |
| ` https://developer.android.com/reference/android/os/Parcelable` | ` https://developer.android.com/reference/android/preference/PreferenceScreen#onSaveInstanceState()() ` Hook allowing a Preference to generate a representation of its internal state that can later be used to create a new instance with that same state. |

### Inherited methods

From class ` https://developer.android.com/reference/android/preference/PreferenceGroup ` ` void` ` https://developer.android.com/reference/android/preference/PreferenceGroup#addItemFromInflater(android.preference.Preference)(https://developer.android.com/reference/android/preference/Preference preference) `

Called by the inflater to add an item to this group.
` boolean` ` https://developer.android.com/reference/android/preference/PreferenceGroup#addPreference(android.preference.Preference)(https://developer.android.com/reference/android/preference/Preference preference) `

Adds a `https://developer.android.com/reference/android/preference/Preference` at the correct position based on the preference's order.
` void` ` https://developer.android.com/reference/android/preference/PreferenceGroup#dispatchRestoreInstanceState(android.os.Bundle)(https://developer.android.com/reference/android/os/Bundle container) `

<br />

` void` ` https://developer.android.com/reference/android/preference/PreferenceGroup#dispatchSaveInstanceState(android.os.Bundle)(https://developer.android.com/reference/android/os/Bundle container) `

<br />

` https://developer.android.com/reference/android/preference/Preference` ` https://developer.android.com/reference/android/preference/PreferenceGroup#findPreference(java.lang.CharSequence)(https://developer.android.com/reference/java/lang/CharSequence key) `

Finds a `https://developer.android.com/reference/android/preference/Preference` based on its key.
` https://developer.android.com/reference/android/preference/Preference` ` https://developer.android.com/reference/android/preference/PreferenceGroup#getPreference(int)(int index) `

Returns the `https://developer.android.com/reference/android/preference/Preference` at a particular index.
` int` ` https://developer.android.com/reference/android/preference/PreferenceGroup#getPreferenceCount()() `

Returns the number of children `https://developer.android.com/reference/android/preference/Preference`s.
` boolean` ` https://developer.android.com/reference/android/preference/PreferenceGroup#isOnSameScreenAsChildren()() `

Whether this preference group should be shown on the same screen as its contained preferences.
` boolean` ` https://developer.android.com/reference/android/preference/PreferenceGroup#isOrderingAsAdded()() `

Whether this group is ordering preferences in the order they are added.
` void` ` https://developer.android.com/reference/android/preference/PreferenceGroup#notifyDependencyChange(boolean)(boolean disableDependents) `

Notifies any listening dependents of a change that affects the dependency.
` void` ` https://developer.android.com/reference/android/preference/PreferenceGroup#onAttachedToActivity()() `

Called when the Preference hierarchy has been attached to the `https://developer.android.com/reference/android/preference/PreferenceActivity`.
` boolean` ` https://developer.android.com/reference/android/preference/PreferenceGroup#onPrepareAddPreference(android.preference.Preference)(https://developer.android.com/reference/android/preference/Preference preference) `

Prepares a `https://developer.android.com/reference/android/preference/Preference` to be added to the group.
` void` ` https://developer.android.com/reference/android/preference/PreferenceGroup#onPrepareForRemoval()() `

Called when this Preference is being removed from the hierarchy.
` void` ` https://developer.android.com/reference/android/preference/PreferenceGroup#removeAll()() `

Removes all `https://developer.android.com/reference/android/preference/Preference` from this group.
` boolean` ` https://developer.android.com/reference/android/preference/PreferenceGroup#removePreference(android.preference.Preference)(https://developer.android.com/reference/android/preference/Preference preference) `

Removes a `https://developer.android.com/reference/android/preference/Preference` from this group.
` void` ` https://developer.android.com/reference/android/preference/PreferenceGroup#setOrderingAsAdded(boolean)(boolean orderingAsAdded) `

Whether to order the `https://developer.android.com/reference/android/preference/Preference` children of this group as they are added.
From class ` https://developer.android.com/reference/android/preference/Preference ` ` boolean` ` https://developer.android.com/reference/android/preference/Preference#callChangeListener(java.lang.Object)(https://developer.android.com/reference/java/lang/Object newValue) `

Call this method after the user changes the preference, but before the internal state is set.
` int` ` https://developer.android.com/reference/android/preference/Preference#compareTo(android.preference.Preference)(https://developer.android.com/reference/android/preference/Preference another) `

Compares Preference objects based on order (if set), otherwise alphabetically on the titles.
` https://developer.android.com/reference/android/preference/Preference` ` https://developer.android.com/reference/android/preference/Preference#findPreferenceInHierarchy(java.lang.String)(https://developer.android.com/reference/java/lang/String key) `

Finds a Preference in this hierarchy (the whole thing, even above/below your `https://developer.android.com/reference/android/preference/PreferenceScreen` screen break) with the given key.
` https://developer.android.com/reference/android/content/Context` ` https://developer.android.com/reference/android/preference/Preference#getContext()() `

Returns the `https://developer.android.com/reference/android/content/Context` of this Preference.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/android/preference/Preference#getDependency()() `

Returns the key of the dependency on this Preference.
` https://developer.android.com/reference/android/content/SharedPreferences.Editor` ` https://developer.android.com/reference/android/preference/Preference#getEditor()() `

Returns an `https://developer.android.com/reference/android/content/SharedPreferences.Editor` where this Preference can save its value(s).
` https://developer.android.com/reference/android/os/Bundle` ` https://developer.android.com/reference/android/preference/Preference#getExtras()() `

Return the extras Bundle object associated with this preference, creating a new Bundle if there currently isn't one.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/android/preference/Preference#getFragment()() `

Return the fragment class name associated with this Preference.
` https://developer.android.com/reference/android/graphics/drawable/Drawable` ` https://developer.android.com/reference/android/preference/Preference#getIcon()() `

Returns the icon of this Preference.
` https://developer.android.com/reference/android/content/Intent` ` https://developer.android.com/reference/android/preference/Preference#getIntent()() `

Return the `https://developer.android.com/reference/android/content/Intent` associated with this Preference.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/android/preference/Preference#getKey()() `

Gets the key for this Preference, which is also the key used for storing values into `https://developer.android.com/reference/android/content/SharedPreferences` or `https://developer.android.com/reference/android/preference/PreferenceDataStore`.
` int` ` https://developer.android.com/reference/android/preference/Preference#getLayoutResource()() `

Gets the layout resource that will be shown as the `https://developer.android.com/reference/android/view/View` for this Preference.
` https://developer.android.com/reference/android/preference/Preference.OnPreferenceChangeListener` ` https://developer.android.com/reference/android/preference/Preference#getOnPreferenceChangeListener()() `

Returns the callback to be invoked when this Preference is changed by the user (but before the internal state has been updated).
` https://developer.android.com/reference/android/preference/Preference.OnPreferenceClickListener` ` https://developer.android.com/reference/android/preference/Preference#getOnPreferenceClickListener()() `

Returns the callback to be invoked when this Preference is clicked.
` int` ` https://developer.android.com/reference/android/preference/Preference#getOrder()() `

Gets the order of this Preference with respect to other Preference objects on the same level.
` https://developer.android.com/reference/android/preference/PreferenceGroup` ` https://developer.android.com/reference/android/preference/Preference#getParent()() `

Returns the `https://developer.android.com/reference/android/preference/PreferenceGroup` which is this Preference assigned to or `null` if this preference is not assigned to any group or is a root Preference.
` boolean` ` https://developer.android.com/reference/android/preference/Preference#getPersistedBoolean(boolean)(boolean defaultReturnValue) `

Attempts to get a persisted boolean if this Preference is persistent.
` float` ` https://developer.android.com/reference/android/preference/Preference#getPersistedFloat(float)(float defaultReturnValue) `

Attempts to get a persisted float if this Preference is persistent.
` int` ` https://developer.android.com/reference/android/preference/Preference#getPersistedInt(int)(int defaultReturnValue) `

Attempts to get a persisted int if this Preference is persistent.
` long` ` https://developer.android.com/reference/android/preference/Preference#getPersistedLong(long)(long defaultReturnValue) `

Attempts to get a persisted long if this Preference is persistent.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/android/preference/Preference#getPersistedString(java.lang.String)(https://developer.android.com/reference/java/lang/String defaultReturnValue) `

Attempts to get a persisted String if this Preference is persistent.
` https://developer.android.com/reference/java/util/Set<https://developer.android.com/reference/java/lang/String>` ` https://developer.android.com/reference/android/preference/Preference#getPersistedStringSet(java.util.Set<java.lang.String>)(https://developer.android.com/reference/java/util/Set<https://developer.android.com/reference/java/lang/String> defaultReturnValue) `

Attempts to get a persisted set of Strings if this Preference is persistent.
` https://developer.android.com/reference/android/preference/PreferenceDataStore` ` https://developer.android.com/reference/android/preference/Preference#getPreferenceDataStore()() `

Returns `https://developer.android.com/reference/android/preference/PreferenceDataStore` used by this Preference.
` https://developer.android.com/reference/android/preference/PreferenceManager` ` https://developer.android.com/reference/android/preference/Preference#getPreferenceManager()() `

Gets the `https://developer.android.com/reference/android/preference/PreferenceManager` that manages this Preference object's tree.
` https://developer.android.com/reference/android/content/SharedPreferences` ` https://developer.android.com/reference/android/preference/Preference#getSharedPreferences()() `

Returns the `https://developer.android.com/reference/android/content/SharedPreferences` where this Preference can read its value(s).
` boolean` ` https://developer.android.com/reference/android/preference/Preference#getShouldDisableView()() `

Checks whether this Preference should disable its view when it's action is disabled.
` https://developer.android.com/reference/java/lang/CharSequence` ` https://developer.android.com/reference/android/preference/Preference#getSummary()() `

Returns the summary of this Preference.
` https://developer.android.com/reference/java/lang/CharSequence` ` https://developer.android.com/reference/android/preference/Preference#getTitle()() `

Returns the title of this Preference.
` int` ` https://developer.android.com/reference/android/preference/Preference#getTitleRes()() `

Returns the title resource ID of this Preference.
` https://developer.android.com/reference/android/view/View` ` https://developer.android.com/reference/android/preference/Preference#getView(android.view.View,%20android.view.ViewGroup)(https://developer.android.com/reference/android/view/View convertView, https://developer.android.com/reference/android/view/ViewGroup parent) `

Gets the View that will be shown in the `https://developer.android.com/reference/android/preference/PreferenceActivity`.
` int` ` https://developer.android.com/reference/android/preference/Preference#getWidgetLayoutResource()() `

Gets the layout resource for the controllable widget portion of this Preference.
` boolean` ` https://developer.android.com/reference/android/preference/Preference#hasKey()() `

Checks whether this Preference has a valid key.
` boolean` ` https://developer.android.com/reference/android/preference/Preference#isEnabled()() `

Checks whether this Preference should be enabled in the list.
` boolean` ` https://developer.android.com/reference/android/preference/Preference#isIconSpaceReserved()() `

Gets whether the space this preference icon view is reserved.
` boolean` ` https://developer.android.com/reference/android/preference/Preference#isPersistent()() `

Checks whether this Preference is persistent.
` boolean` ` https://developer.android.com/reference/android/preference/Preference#isRecycleEnabled()() `

Checks whether this Preference has enabled to have its view recycled when used in the list view.
` boolean` ` https://developer.android.com/reference/android/preference/Preference#isSelectable()() `

Checks whether this Preference should be selectable in the list.
` boolean` ` https://developer.android.com/reference/android/preference/Preference#isSingleLineTitle()() `

Gets whether the title of this preference is constrained to a single line.
` void` ` https://developer.android.com/reference/android/preference/Preference#notifyChanged()() `

Should be called when the data of this `https://developer.android.com/reference/android/preference/Preference` has changed.
` void` ` https://developer.android.com/reference/android/preference/Preference#notifyDependencyChange(boolean)(boolean disableDependents) `

Notifies any listening dependents of a change that affects the dependency.
` void` ` https://developer.android.com/reference/android/preference/Preference#notifyHierarchyChanged()() `

Should be called when a Preference has been added/removed from this group, or the ordering should be re-evaluated.
` void` ` https://developer.android.com/reference/android/preference/Preference#onAttachedToActivity()() `

Called when the Preference hierarchy has been attached to the `https://developer.android.com/reference/android/preference/PreferenceActivity`.
` void` ` https://developer.android.com/reference/android/preference/Preference#onAttachedToHierarchy(android.preference.PreferenceManager)(https://developer.android.com/reference/android/preference/PreferenceManager preferenceManager) `

Called when this Preference has been attached to a Preference hierarchy.
` void` ` https://developer.android.com/reference/android/preference/Preference#onBindView(android.view.View)(https://developer.android.com/reference/android/view/View view) `

Binds the created View to the data for this Preference.
` void` ` https://developer.android.com/reference/android/preference/Preference#onClick()() `

Processes a click on the preference.
` https://developer.android.com/reference/android/view/View` ` https://developer.android.com/reference/android/preference/Preference#onCreateView(android.view.ViewGroup)(https://developer.android.com/reference/android/view/ViewGroup parent) `

Creates the View to be shown for this Preference in the `https://developer.android.com/reference/android/preference/PreferenceActivity`.
` void` ` https://developer.android.com/reference/android/preference/Preference#onDependencyChanged(android.preference.Preference,%20boolean)(https://developer.android.com/reference/android/preference/Preference dependency, boolean disableDependent) `

Called when the dependency changes.
` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/android/preference/Preference#onGetDefaultValue(android.content.res.TypedArray,%20int)(https://developer.android.com/reference/android/content/res/TypedArray a, int index) `

Called when a Preference is being inflated and the default value attribute needs to be read.
` void` ` https://developer.android.com/reference/android/preference/Preference#onParentChanged(android.preference.Preference,%20boolean)(https://developer.android.com/reference/android/preference/Preference parent, boolean disableChild) `

Called when the implicit parent dependency changes.
` void` ` https://developer.android.com/reference/android/preference/Preference#onPrepareForRemoval()() `

Called when this Preference is being removed from the hierarchy.
` void` ` https://developer.android.com/reference/android/preference/Preference#onRestoreInstanceState(android.os.Parcelable)(https://developer.android.com/reference/android/os/Parcelable state) `

Hook allowing a Preference to re-apply a representation of its internal state that had previously been generated by `https://developer.android.com/reference/android/preference/Preference#onSaveInstanceState()`.
` https://developer.android.com/reference/android/os/Parcelable` ` https://developer.android.com/reference/android/preference/Preference#onSaveInstanceState()() `

Hook allowing a Preference to generate a representation of its internal state that can later be used to create a new instance with that same state.
` void` ` https://developer.android.com/reference/android/preference/Preference#onSetInitialValue(boolean,%20java.lang.Object)(boolean restorePersistedValue, https://developer.android.com/reference/java/lang/Object defaultValue) `

Implement this to set the initial value of the Preference.
` https://developer.android.com/reference/android/os/Bundle` ` https://developer.android.com/reference/android/preference/Preference#peekExtras()() `

Return the extras Bundle object associated with this preference, returning `null` if there is not currently one.
` boolean` ` https://developer.android.com/reference/android/preference/Preference#persistBoolean(boolean)(boolean value) `

Attempts to persist a boolean if this Preference is persistent.
` boolean` ` https://developer.android.com/reference/android/preference/Preference#persistFloat(float)(float value) `

Attempts to persist a long if this Preference is persistent.
` boolean` ` https://developer.android.com/reference/android/preference/Preference#persistInt(int)(int value) `

Attempts to persist an int if this Preference is persistent.
` boolean` ` https://developer.android.com/reference/android/preference/Preference#persistLong(long)(long value) `

Attempts to persist a long if this Preference is persistent.
` boolean` ` https://developer.android.com/reference/android/preference/Preference#persistString(java.lang.String)(https://developer.android.com/reference/java/lang/String value) `

Attempts to persist a String if this Preference is persistent.
` boolean` ` https://developer.android.com/reference/android/preference/Preference#persistStringSet(java.util.Set<java.lang.String>)(https://developer.android.com/reference/java/util/Set<https://developer.android.com/reference/java/lang/String> values) `

Attempts to persist a set of Strings if this Preference is persistent.
` void` ` https://developer.android.com/reference/android/preference/Preference#restoreHierarchyState(android.os.Bundle)(https://developer.android.com/reference/android/os/Bundle container) `

Restore this Preference hierarchy's previously saved state from the given container.
` void` ` https://developer.android.com/reference/android/preference/Preference#saveHierarchyState(android.os.Bundle)(https://developer.android.com/reference/android/os/Bundle container) `

Store this Preference hierarchy's frozen state into the given container.
` void` ` https://developer.android.com/reference/android/preference/Preference#setDefaultValue(java.lang.Object)(https://developer.android.com/reference/java/lang/Object defaultValue) `

Sets the default value for this Preference, which will be set either if persistence is off or persistence is on and the preference is not found in the persistent storage.
` void` ` https://developer.android.com/reference/android/preference/Preference#setDependency(java.lang.String)(https://developer.android.com/reference/java/lang/String dependencyKey) `

Sets the key of a Preference that this Preference will depend on.
` void` ` https://developer.android.com/reference/android/preference/Preference#setEnabled(boolean)(boolean enabled) `

Sets whether this Preference is enabled.
` void` ` https://developer.android.com/reference/android/preference/Preference#setFragment(java.lang.String)(https://developer.android.com/reference/java/lang/String fragment) `

Sets the class name of a fragment to be shown when this Preference is clicked.
` void` ` https://developer.android.com/reference/android/preference/Preference#setIcon(android.graphics.drawable.Drawable)(https://developer.android.com/reference/android/graphics/drawable/Drawable icon) `

Sets the icon for this Preference with a Drawable.
` void` ` https://developer.android.com/reference/android/preference/Preference#setIcon(int)(int iconResId) `

Sets the icon for this Preference with a resource ID.
` void` ` https://developer.android.com/reference/android/preference/Preference#setIconSpaceReserved(boolean)(boolean iconSpaceReserved) `

Sets whether to reserve the space of this Preference icon view when no icon is provided.
` void` ` https://developer.android.com/reference/android/preference/Preference#setIntent(android.content.Intent)(https://developer.android.com/reference/android/content/Intent intent) `

Sets an `https://developer.android.com/reference/android/content/Intent` to be used for `https://developer.android.com/reference/android/content/Context#startActivity(android.content.Intent)` when this Preference is clicked.
` void` ` https://developer.android.com/reference/android/preference/Preference#setKey(java.lang.String)(https://developer.android.com/reference/java/lang/String key) `

Sets the key for this Preference, which is used as a key to the `https://developer.android.com/reference/android/content/SharedPreferences` or `https://developer.android.com/reference/android/preference/PreferenceDataStore`.
` void` ` https://developer.android.com/reference/android/preference/Preference#setLayoutResource(int)(int layoutResId) `

Sets the layout resource that is inflated as the `https://developer.android.com/reference/android/view/View` to be shown for this Preference.
` void` ` https://developer.android.com/reference/android/preference/Preference#setOnPreferenceChangeListener(android.preference.Preference.OnPreferenceChangeListener)(https://developer.android.com/reference/android/preference/Preference.OnPreferenceChangeListener onPreferenceChangeListener) `

Sets the callback to be invoked when this Preference is changed by the user (but before the internal state has been updated).
` void` ` https://developer.android.com/reference/android/preference/Preference#setOnPreferenceClickListener(android.preference.Preference.OnPreferenceClickListener)(https://developer.android.com/reference/android/preference/Preference.OnPreferenceClickListener onPreferenceClickListener) `

Sets the callback to be invoked when this Preference is clicked.
` void` ` https://developer.android.com/reference/android/preference/Preference#setOrder(int)(int order) `

Sets the order of this Preference with respect to other Preference objects on the same level.
` void` ` https://developer.android.com/reference/android/preference/Preference#setPersistent(boolean)(boolean persistent) `

Sets whether this Preference is persistent.
` void` ` https://developer.android.com/reference/android/preference/Preference#setPreferenceDataStore(android.preference.PreferenceDataStore)(https://developer.android.com/reference/android/preference/PreferenceDataStore dataStore) `

Sets a `https://developer.android.com/reference/android/preference/PreferenceDataStore` to be used by this Preference instead of using `https://developer.android.com/reference/android/content/SharedPreferences`.
` void` ` https://developer.android.com/reference/android/preference/Preference#setRecycleEnabled(boolean)(boolean enabled) `

Sets whether this Preference has enabled to have its view recycled when used in the list view.
` void` ` https://developer.android.com/reference/android/preference/Preference#setSelectable(boolean)(boolean selectable) `

Sets whether this Preference is selectable.
` void` ` https://developer.android.com/reference/android/preference/Preference#setShouldDisableView(boolean)(boolean shouldDisableView) `

Sets whether this Preference should disable its view when it gets disabled.
` void` ` https://developer.android.com/reference/android/preference/Preference#setSingleLineTitle(boolean)(boolean singleLineTitle) `

Sets whether to constrain the title of this Preference to a single line instead of letting it wrap onto multiple lines.
` void` ` https://developer.android.com/reference/android/preference/Preference#setSummary(java.lang.CharSequence)(https://developer.android.com/reference/java/lang/CharSequence summary) `

Sets the summary for this Preference with a CharSequence.
` void` ` https://developer.android.com/reference/android/preference/Preference#setSummary(int)(int summaryResId) `

Sets the summary for this Preference with a resource ID.
` void` ` https://developer.android.com/reference/android/preference/Preference#setTitle(java.lang.CharSequence)(https://developer.android.com/reference/java/lang/CharSequence title) `

Sets the title for this Preference with a CharSequence.
` void` ` https://developer.android.com/reference/android/preference/Preference#setTitle(int)(int titleResId) `

Sets the title for this Preference with a resource ID.
` void` ` https://developer.android.com/reference/android/preference/Preference#setWidgetLayoutResource(int)(int widgetLayoutResId) `

Sets the layout for the controllable widget portion of this Preference.
` boolean` ` https://developer.android.com/reference/android/preference/Preference#shouldCommit()() `

Returns whether the `https://developer.android.com/reference/android/preference/Preference` should commit its saved value(s) in `https://developer.android.com/reference/android/preference/Preference#getEditor()`.
` boolean` ` https://developer.android.com/reference/android/preference/Preference#shouldDisableDependents()() `

Checks whether this preference's dependents should currently be disabled.
` boolean` ` https://developer.android.com/reference/android/preference/Preference#shouldPersist()() `

Checks whether, at the given time this method is called, this Preference should store/restore its value(s) into the `https://developer.android.com/reference/android/content/SharedPreferences` or into `https://developer.android.com/reference/android/preference/PreferenceDataStore` if assigned.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/android/preference/Preference#toString()() `

Returns a string representation of the object.
From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.
From interface ` https://developer.android.com/reference/java/lang/Comparable ` ` abstract int` ` https://developer.android.com/reference/java/lang/Comparable#compareTo(T)(https://developer.android.com/reference/android/preference/Preference o) `

Compares this object with the specified object for order.
From interface ` https://developer.android.com/reference/android/widget/AdapterView.OnItemClickListener ` ` abstract void` ` https://developer.android.com/reference/android/widget/AdapterView.OnItemClickListener#onItemClick(android.widget.AdapterView<?>,%20android.view.View,%20int,%20long)(https://developer.android.com/reference/android/widget/AdapterView<?> parent, https://developer.android.com/reference/android/view/View view, int position, long id) `

Callback method to be invoked when an item in this AdapterView has been clicked.
From interface ` https://developer.android.com/reference/android/content/DialogInterface.OnDismissListener ` ` abstract void` ` https://developer.android.com/reference/android/content/DialogInterface.OnDismissListener#onDismiss(android.content.DialogInterface)(https://developer.android.com/reference/android/content/DialogInterface dialog) `

This method will be invoked when the dialog is dismissed.

## Public methods

### bind

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void bind (ListView listView)
```

Binds a `https://developer.android.com/reference/android/widget/ListView` to the preferences contained in this `https://developer.android.com/reference/android/preference/PreferenceScreen` via `https://developer.android.com/reference/android/preference/PreferenceScreen#getRootAdapter()`. It also handles passing list item clicks to the corresponding `https://developer.android.com/reference/android/preference/Preference` contained by this `https://developer.android.com/reference/android/preference/PreferenceScreen`.

<br />

| Parameters ||
|---|---|
| `listView` | `ListView`: The list view to attach to. <br /> |

### getDialog

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Dialog getDialog ()
```

Used to get a handle to the dialog. This is useful for cases where we want to manipulate the dialog as we would with any other activity or view.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/Dialog` | <br /> |

### getRootAdapter

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public ListAdapter getRootAdapter ()
```

Returns an adapter that can be attached to a `https://developer.android.com/reference/android/preference/PreferenceActivity` or `https://developer.android.com/reference/android/preference/PreferenceFragment` to show the preferences contained in this `https://developer.android.com/reference/android/preference/PreferenceScreen`.

This `https://developer.android.com/reference/android/preference/PreferenceScreen` will NOT appear in the returned adapter, instead it appears in the hierarchy above this `https://developer.android.com/reference/android/preference/PreferenceScreen`.

This adapter's `https://developer.android.com/reference/android/widget/Adapter#getItem(int)` should always return a subclass of `https://developer.android.com/reference/android/preference/Preference`.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/widget/ListAdapter` | An adapter that provides the `https://developer.android.com/reference/android/preference/Preference` contained in this `https://developer.android.com/reference/android/preference/PreferenceScreen`. <br /> |

### onDismiss

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void onDismiss (DialogInterface dialog)
```

This method will be invoked when the dialog is dismissed.

<br />

| Parameters ||
|---|---|
| `dialog` | `DialogInterface`: the dialog that was dismissed will be passed into the method <br /> |

### onItemClick

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void onItemClick (AdapterView<T extends Adapter> parent, 
                View view, 
                int position, 
                long id)
```

<br />

<br />

| Parameters ||
|---|---|
| `parent` | `AdapterView` <br /> |
| `view` | `View` <br /> |
| `position` | `int` <br /> |
| `id` | `long` <br /> |

## Protected methods

### isOnSameScreenAsChildren

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
protected boolean isOnSameScreenAsChildren ()
```

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

<br />

| Returns ||
|---|---|
| `boolean` | True if the contained preferences should be shown on the same screen as this preference. <br /> |

### onClick

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
protected void onClick ()
```

Processes a click on the preference. This includes saving the value to the `https://developer.android.com/reference/android/content/SharedPreferences`. However, the overridden method should call `https://developer.android.com/reference/android/preference/Preference#callChangeListener(java.lang.Object)` to make sure the client wants to update the preference's state with the new value.

<br />

### onCreateRootAdapter

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
protected ListAdapter onCreateRootAdapter ()
```

Creates the root adapter.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/widget/ListAdapter` | An adapter that contains the preferences contained in this `https://developer.android.com/reference/android/preference/PreferenceScreen`. <br /> |

**See also:**

- `https://developer.android.com/reference/android/preference/PreferenceScreen#getRootAdapter()`

### onRestoreInstanceState

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
protected void onRestoreInstanceState (Parcelable state)
```

Hook allowing a Preference to re-apply a representation of its internal state that had previously been generated by `https://developer.android.com/reference/android/preference/Preference#onSaveInstanceState()`. This function will never be called with a `null` state.

<br />

| Parameters ||
|---|---|
| `state` | `Parcelable`: The saved state that had previously been returned by `https://developer.android.com/reference/android/preference/PreferenceScreen#onSaveInstanceState()`. <br /> |

### onSaveInstanceState

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
protected Parcelable onSaveInstanceState ()
```

Hook allowing a Preference to generate a representation of its internal state that can later be used to create a new instance with that same state. This state should only contain information that is not persistent or can be reconstructed later.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/os/Parcelable` | A Parcelable object containing the current dynamic state of this Preference, or `null` if there is nothing interesting to save. The default implementation returns `null`. <br /> |