# SwitchPreference

Artifact: [androidx.preference:preference](https://developer.android.com/jetpack/androidx/releases/preference) [View Source](https://cs.android.com/search?q=file:androidx/preference/SwitchPreference.java+class:androidx.preference.SwitchPreference) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/preference#1.0.0)

*** ** * ** ***


```
public class SwitchPreference extends TwoStatePreference
```

<br />

|---|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) ||||
| ↳ | [androidx.preference.Preference](https://developer.android.com/reference/androidx/preference/Preference) |||
|   | ↳ | [androidx.preference.TwoStatePreference](https://developer.android.com/reference/androidx/preference/TwoStatePreference) ||
|   |   | ↳ | [androidx.preference.SwitchPreference](https://developer.android.com/reference/androidx/preference/SwitchPreference) |

*** ** * ** ***

A `https://developer.android.com/reference/androidx/preference/Preference` that provides a two-state toggleable option.

This preference will save a boolean value to `https://developer.android.com/reference/android/content/SharedPreferences.html`.

name android:summaryOff

name android:summaryOn

name android:switchTextOff

name android:switchTextOn

name android:disableDependentsState

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/preference/SwitchPreference#SwitchPreference(android.content.Context)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context)` Construct a new SwitchPreference with default style options. |
| `https://developer.android.com/reference/androidx/preference/SwitchPreference#SwitchPreference(android.content.Context,android.util.AttributeSet)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/util/AttributeSet.html attrs)` Construct a new SwitchPreference with the given style options. |
| `https://developer.android.com/reference/androidx/preference/SwitchPreference#SwitchPreference(android.content.Context,android.util.AttributeSet,int)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/util/AttributeSet.html attrs, int defStyleAttr )` Construct a new SwitchPreference with the given style options. |
| `https://developer.android.com/reference/androidx/preference/SwitchPreference#SwitchPreference(android.content.Context,android.util.AttributeSet,int,int)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/util/AttributeSet.html attrs, int defStyleAttr, int defStyleRes )` Construct a new SwitchPreference with the given style options. |

| ### Public methods |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/CharSequence.html` | `https://developer.android.com/reference/androidx/preference/SwitchPreference#getSwitchTextOff()()` |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/CharSequence.html` | `https://developer.android.com/reference/androidx/preference/SwitchPreference#getSwitchTextOn()()` |
| `void` | `https://developer.android.com/reference/androidx/preference/SwitchPreference#onBindViewHolder(androidx.preference.PreferenceViewHolder)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/preference/PreferenceViewHolder holder)` Binds the created View to the data for this preference. |
| `void` | `https://developer.android.com/reference/androidx/preference/SwitchPreference#setSwitchTextOff(java.lang.CharSequence)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/CharSequence.html offText)` Set the text displayed on the switch widget in the off state. |
| `void` | `https://developer.android.com/reference/androidx/preference/SwitchPreference#setSwitchTextOff(int)(int resId)` Set the text displayed on the switch widget in the off state. |
| `void` | `https://developer.android.com/reference/androidx/preference/SwitchPreference#setSwitchTextOn(java.lang.CharSequence)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/CharSequence.html onText)` Set the text displayed on the switch widget in the on state. |
| `void` | `https://developer.android.com/reference/androidx/preference/SwitchPreference#setSwitchTextOn(int)(int resId)` Set the text displayed on the switch widget in the on state. |

| ### Inherited Constants |
|---|
| From [androidx.preference.Preference](https://developer.android.com/reference/androidx/preference/Preference) |---|---| | `static final int` | `https://developer.android.com/reference/androidx/preference/Preference#DEFAULT_ORDER() = 2147483647` Specify for `https://developer.android.com/reference/androidx/preference/Preference#setOrder(int)` if a specific order is not required. | |

| ### Inherited fields |
|---|
| From [androidx.preference.TwoStatePreference](https://developer.android.com/reference/androidx/preference/TwoStatePreference) |---|---| | `boolean` | `https://developer.android.com/reference/androidx/preference/TwoStatePreference#mChecked()` | |

| ### Inherited methods |
|---|
| From [java.lang.Comparable](https://developer.android.com/reference/java/lang/Comparable.html) |---|---| | `abstract int` | `https://developer.android.com/reference/java/lang/Comparable.html#compareTo(T)(T p)` | |
| From [androidx.preference.Preference](https://developer.android.com/reference/androidx/preference/Preference) |---|---| | `boolean` | `https://developer.android.com/reference/androidx/preference/Preference#callChangeListener(java.lang.Object)(https://developer.android.com/reference/java/lang/Object.html newValue)` Call this method after the user changes the preference, but before the internal state is set. | | `int` | `https://developer.android.com/reference/androidx/preference/Preference#compareTo(androidx.preference.Preference)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/preference/Preference another)` Compares preference objects based on order (if set), otherwise alphabetically on the titles. | | `@https://developer.android.com/reference/androidx/annotation/Nullable T` | `<T extends https://developer.android.com/reference/androidx/preference/Preference> https://developer.android.com/reference/androidx/preference/Preference#findPreferenceInHierarchy(java.lang.String)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html key)` Finds a preference in the entire hierarchy (above or below this preference) with the given key. | | `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html` | `https://developer.android.com/reference/androidx/preference/Preference#getContext()()` Returns the `https://developer.android.com/reference/android/content/Context.html` of this preference. | | `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/preference/Preference#getDependency()()` Returns the key of the dependency on this preference. | | `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/os/Bundle.html` | `https://developer.android.com/reference/androidx/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/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/preference/Preference#getFragment()()` Return the fragment class name associated with this preference. | | `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/graphics/drawable/Drawable.html` | `https://developer.android.com/reference/androidx/preference/Preference#getIcon()()` Returns the icon of this preference. | | `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/content/Intent.html` | `https://developer.android.com/reference/androidx/preference/Preference#getIntent()()` Return the `https://developer.android.com/reference/android/content/Intent.html` associated with this preference. | | `https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/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.html` or `https://developer.android.com/reference/androidx/preference/PreferenceDataStore`. | | `final int` | `https://developer.android.com/reference/androidx/preference/Preference#getLayoutResource()()` Gets the layout resource that will be shown as the `https://developer.android.com/reference/android/view/View.html` for this preference. | | `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/preference/Preference.OnPreferenceChangeListener` | `https://developer.android.com/reference/androidx/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/androidx/annotation/Nullable https://developer.android.com/reference/androidx/preference/Preference.OnPreferenceClickListener` | `https://developer.android.com/reference/androidx/preference/Preference#getOnPreferenceClickListener()()` Returns the callback to be invoked when this preference is clicked. | | `int` | `https://developer.android.com/reference/androidx/preference/Preference#getOrder()()` Gets the order of this preference with respect to other preference objects on the same level. | | `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/preference/PreferenceGroup` | `https://developer.android.com/reference/androidx/preference/Preference#getParent()()` Returns the `https://developer.android.com/reference/androidx/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/androidx/preference/Preference#getPersistedBoolean(boolean)(boolean defaultReturnValue)` Attempts to get a persisted `https://developer.android.com/reference/java/lang/Boolean.html` if this preference is persistent. | | `float` | `https://developer.android.com/reference/androidx/preference/Preference#getPersistedFloat(float)(float defaultReturnValue)` Attempts to get a persisted `https://developer.android.com/reference/java/lang/Float.html` if this preference is persistent. | | `int` | `https://developer.android.com/reference/androidx/preference/Preference#getPersistedInt(int)(int defaultReturnValue)` Attempts to get a persisted `https://developer.android.com/reference/java/lang/Integer.html` if this preference is persistent. | | `long` | `https://developer.android.com/reference/androidx/preference/Preference#getPersistedLong(long)(long defaultReturnValue)` Attempts to get a persisted `https://developer.android.com/reference/java/lang/Long.html` if this preference is persistent. | | `https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/preference/Preference#getPersistedString(java.lang.String)(https://developer.android.com/reference/java/lang/String.html defaultReturnValue)` Attempts to get a persisted set of Strings if this preference is persistent. | | `https://developer.android.com/reference/java/util/Set.html<https://developer.android.com/reference/java/lang/String.html>` | `https://developer.android.com/reference/androidx/preference/Preference#getPersistedStringSet(java.util.Set<java.lang.String>)(https://developer.android.com/reference/java/util/Set.html<https://developer.android.com/reference/java/lang/String.html> defaultReturnValue)` Attempts to get a persisted set of Strings if this preference is persistent. | | `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/preference/PreferenceDataStore` | `https://developer.android.com/reference/androidx/preference/Preference#getPreferenceDataStore()()` Returns `https://developer.android.com/reference/androidx/preference/PreferenceDataStore` used by this preference. | | `https://developer.android.com/reference/androidx/preference/PreferenceManager` | `https://developer.android.com/reference/androidx/preference/Preference#getPreferenceManager()()` Gets the `https://developer.android.com/reference/androidx/preference/PreferenceManager` that manages this preference object's tree. | | `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/content/SharedPreferences.html` | `https://developer.android.com/reference/androidx/preference/Preference#getSharedPreferences()()` Returns the `https://developer.android.com/reference/android/content/SharedPreferences.html` where this preference can read its value(s). | | `boolean` | `https://developer.android.com/reference/androidx/preference/Preference#getShouldDisableView()()` Checks whether this preference should disable its view when it's action is disabled. | | `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/CharSequence.html` | `https://developer.android.com/reference/androidx/preference/Preference#getSummary()()` Returns the summary of this preference. | | `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/preference/Preference.SummaryProvider` | `https://developer.android.com/reference/androidx/preference/Preference#getSummaryProvider()()` Returns the `https://developer.android.com/reference/androidx/preference/Preference.SummaryProvider` used to configure the summary of this preference. | | `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/CharSequence.html` | `https://developer.android.com/reference/androidx/preference/Preference#getTitle()()` Returns the title of this preference. | | `final int` | `https://developer.android.com/reference/androidx/preference/Preference#getWidgetLayoutResource()()` Gets the layout resource for the controllable widget portion of this preference. | | `boolean` | `https://developer.android.com/reference/androidx/preference/Preference#hasKey()()` Checks whether this preference has a valid key. | | `boolean` | `https://developer.android.com/reference/androidx/preference/Preference#isCopyingEnabled()()` Returns whether the summary of this preference can be copied to the clipboard by long pressing on the preference. | | `boolean` | `https://developer.android.com/reference/androidx/preference/Preference#isEnabled()()` Checks whether this preference should be enabled in the list. | | `boolean` | `https://developer.android.com/reference/androidx/preference/Preference#isIconSpaceReserved()()` Returns whether the space of this preference icon view is reserved. | | `boolean` | `https://developer.android.com/reference/androidx/preference/Preference#isPersistent()()` Checks whether this preference is persistent. | | `boolean` | `https://developer.android.com/reference/androidx/preference/Preference#isSelectable()()` Checks whether this preference should be selectable in the list. | | `final boolean` | `https://developer.android.com/reference/androidx/preference/Preference#isShown()()` Checks whether this preference is shown to the user in the hierarchy. | | `boolean` | `https://developer.android.com/reference/androidx/preference/Preference#isSingleLineTitle()()` Gets whether the title of this preference is constrained to a single line. | | `final boolean` | `https://developer.android.com/reference/androidx/preference/Preference#isVisible()()` Checks whether this preference should be visible to the user. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#notifyChanged()()` Should be called when the data of this `https://developer.android.com/reference/androidx/preference/Preference` has changed. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#notifyDependencyChange(boolean)(boolean disableDependents)` Notifies any listening dependents of a change that affects the dependency. | | `void` | `https://developer.android.com/reference/androidx/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/androidx/preference/Preference#onAttached()()` Called when the preference hierarchy has been attached to the list of preferences. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#onAttachedToHierarchy(androidx.preference.PreferenceManager)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/preference/PreferenceManager preferenceManager)` Called when this preference has been attached to a preference hierarchy. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#onDependencyChanged(androidx.preference.Preference,boolean)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/preference/Preference dependency, boolean disableDependent )` Called when the dependency changes. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#onDetached()()` Called when the preference hierarchy has been detached from the list of preferences. | | `void` | `@https://developer.android.com/reference/androidx/annotation/CallSuper [onInitializeAccessibilityNodeInfo](https://developer.android.com/reference/androidx/preference/Preference#onInitializeAccessibilityNodeInfo(androidx.core.view.accessibility.AccessibilityNodeInfoCompat))(https://developer.android.com/reference/androidx/core/view/accessibility/AccessibilityNodeInfoCompat info)` **This method is deprecated.** Preferences aren't views. <br /> | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#onParentChanged(androidx.preference.Preference,boolean)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/preference/Preference parent, boolean disableChild)` Called when the implicit parent dependency changes. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#onPrepareForRemoval()()` Called when this preference is being removed from the hierarchy. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#onSetInitialValue(java.lang.Object)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/Object.html defaultValue)` Implement this to set the initial value of the preference. | | `void` | `[onSetInitialValue](https://developer.android.com/reference/androidx/preference/Preference#onSetInitialValue(boolean,java.lang.Object))(boolean restorePersistedValue, https://developer.android.com/reference/java/lang/Object.html defaultValue)` **This method is deprecated.** Use `https://developer.android.com/reference/androidx/preference/Preference#onSetInitialValue(java.lang.Object)` instead. <br /> | | `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/os/Bundle.html` | `https://developer.android.com/reference/androidx/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/androidx/preference/Preference#persistBoolean(boolean)(boolean value)` Attempts to persist a `https://developer.android.com/reference/java/lang/Boolean.html` if this preference is persistent. | | `boolean` | `https://developer.android.com/reference/androidx/preference/Preference#persistFloat(float)(float value)` Attempts to persist a `https://developer.android.com/reference/java/lang/Float.html` if this preference is persistent. | | `boolean` | `https://developer.android.com/reference/androidx/preference/Preference#persistInt(int)(int value)` Attempts to persist an `https://developer.android.com/reference/java/lang/Integer.html` if this preference is persistent. | | `boolean` | `https://developer.android.com/reference/androidx/preference/Preference#persistLong(long)(long value)` Attempts to persist a `https://developer.android.com/reference/java/lang/Long.html` if this preference is persistent. | | `boolean` | `https://developer.android.com/reference/androidx/preference/Preference#persistString(java.lang.String)(https://developer.android.com/reference/java/lang/String.html value)` Attempts to persist a `https://developer.android.com/reference/java/lang/String.html` if this preference is persistent. | | `boolean` | `https://developer.android.com/reference/androidx/preference/Preference#persistStringSet(java.util.Set<java.lang.String>)(https://developer.android.com/reference/java/util/Set.html<https://developer.android.com/reference/java/lang/String.html> values)` Attempts to persist a set of Strings if this preference is persistent. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#restoreHierarchyState(android.os.Bundle)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/os/Bundle.html container)` Restore this preference hierarchy's previously saved state from the given container. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#saveHierarchyState(android.os.Bundle)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/os/Bundle.html container)` Store this preference hierarchy's frozen state into the given container. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#setCopyingEnabled(boolean)(boolean enabled)` Sets whether the summary of this preference can be copied to the clipboard by long pressing on the preference. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#setDefaultValue(java.lang.Object)(https://developer.android.com/reference/java/lang/Object.html 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/androidx/preference/Preference#setDependency(java.lang.String)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html dependencyKey)` Sets the key of a preference that this preference will depend on. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#setEnabled(boolean)(boolean enabled)` Sets whether this preference is enabled. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#setFragment(java.lang.String)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/String.html fragment)` Sets the class name of a fragment to be shown when this preference is clicked. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#setIcon(android.graphics.drawable.Drawable)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/graphics/drawable/Drawable.html icon)` Sets the icon for this preference with a Drawable. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#setIcon(int)(int iconResId)` Sets the icon for this preference with a resource ID. | | `void` | `https://developer.android.com/reference/androidx/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/androidx/preference/Preference#setIntent(android.content.Intent)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/content/Intent.html intent)` Sets an `https://developer.android.com/reference/android/content/Intent.html` to be used for `https://developer.android.com/reference/android/content/Context.html#startActivity(android.content.Intent)` when this preference is clicked. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#setKey(java.lang.String)(https://developer.android.com/reference/java/lang/String.html key)` Sets the key for this preference, which is used as a key to the `https://developer.android.com/reference/android/content/SharedPreferences.html` or `https://developer.android.com/reference/androidx/preference/PreferenceDataStore`. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#setLayoutResource(int)(int layoutResId)` Sets the layout resource that is inflated as the `https://developer.android.com/reference/android/view/View.html` to be shown for this preference. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#setOnPreferenceChangeListener(androidx.preference.Preference.OnPreferenceChangeListener)( @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/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/androidx/preference/Preference#setOnPreferenceClickListener(androidx.preference.Preference.OnPreferenceClickListener)( @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/preference/Preference.OnPreferenceClickListener onPreferenceClickListener )` Sets the callback to be invoked when this preference is clicked. | | `void` | `https://developer.android.com/reference/androidx/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/androidx/preference/Preference#setPersistent(boolean)(boolean persistent)` Sets whether this preference is persistent. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#setPreferenceDataStore(androidx.preference.PreferenceDataStore)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/preference/PreferenceDataStore dataStore)` Sets a `https://developer.android.com/reference/androidx/preference/PreferenceDataStore` to be used by this preference instead of using `https://developer.android.com/reference/android/content/SharedPreferences.html`. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#setSelectable(boolean)(boolean selectable)` Sets whether this preference is selectable. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#setShouldDisableView(boolean)(boolean shouldDisableView)` Sets whether this preference should disable its view when it gets disabled. | | `void` | `https://developer.android.com/reference/androidx/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/androidx/preference/Preference#setSummary(java.lang.CharSequence)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/CharSequence.html summary)` Sets the summary for this preference with a CharSequence. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#setSummary(int)(int summaryResId)` Sets the summary for this preference with a resource ID. | | `final void` | `https://developer.android.com/reference/androidx/preference/Preference#setSummaryProvider(androidx.preference.Preference.SummaryProvider)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/preference/Preference.SummaryProvider summaryProvider)` Set a `https://developer.android.com/reference/androidx/preference/Preference.SummaryProvider` that will be invoked whenever the summary of this preference is requested. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#setTitle(java.lang.CharSequence)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/CharSequence.html title)` Sets the title for this preference with a CharSequence. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#setTitle(int)(int titleResId)` Sets the title for this preference with a resource ID. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#setViewId(int)(int viewId)` Set the ID that will be assigned to the overall View representing this preference, once bound. | | `final void` | `https://developer.android.com/reference/androidx/preference/Preference#setVisible(boolean)(boolean visible)` Sets whether this preference should be visible to the user. | | `void` | `https://developer.android.com/reference/androidx/preference/Preference#setWidgetLayoutResource(int)(int widgetLayoutResId)` Sets the layout for the controllable widget portion of this preference. | | `boolean` | `https://developer.android.com/reference/androidx/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.html` or into `https://developer.android.com/reference/androidx/preference/PreferenceDataStore` if assigned. | | `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html` | `https://developer.android.com/reference/androidx/preference/Preference#toString()()` | |
| From [androidx.preference.TwoStatePreference](https://developer.android.com/reference/androidx/preference/TwoStatePreference) |---|---| | `boolean` | `https://developer.android.com/reference/androidx/preference/TwoStatePreference#getDisableDependentsState()()` Returns whether dependents are disabled when this preference is on (`true`) or when this preference is off (`false`). | | `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/CharSequence.html` | `https://developer.android.com/reference/androidx/preference/TwoStatePreference#getSummaryOff()()` Returns the summary to be shown when unchecked. | | `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/CharSequence.html` | `https://developer.android.com/reference/androidx/preference/TwoStatePreference#getSummaryOn()()` Returns the summary to be shown when checked. | | `boolean` | `https://developer.android.com/reference/androidx/preference/TwoStatePreference#isChecked()()` Returns the checked state. | | `void` | `https://developer.android.com/reference/androidx/preference/TwoStatePreference#onClick()()` Processes a click on the preference. | | `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/Object.html` | `https://developer.android.com/reference/androidx/preference/TwoStatePreference#onGetDefaultValue(android.content.res.TypedArray,int)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/res/TypedArray.html 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/androidx/preference/TwoStatePreference#onRestoreInstanceState(android.os.Parcelable)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/os/Parcelable.html 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/androidx/preference/Preference#onSaveInstanceState()`. | | `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/os/Parcelable.html` | `https://developer.android.com/reference/androidx/preference/TwoStatePreference#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/androidx/preference/TwoStatePreference#onSetInitialValue(java.lang.Object)(https://developer.android.com/reference/java/lang/Object.html defaultValue)` Implement this to set the initial value of the preference. | | `void` | `https://developer.android.com/reference/androidx/preference/TwoStatePreference#setChecked(boolean)(boolean checked)` Sets the checked state and saves it. | | `void` | `https://developer.android.com/reference/androidx/preference/TwoStatePreference#setDisableDependentsState(boolean)(boolean disableDependentsState)` Sets whether dependents are disabled when this preference is on (`true`) or when this preference is off (`false`). | | `void` | `https://developer.android.com/reference/androidx/preference/TwoStatePreference#setSummaryOff(java.lang.CharSequence)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/CharSequence.html summary)` Sets the summary to be shown when unchecked. | | `void` | `https://developer.android.com/reference/androidx/preference/TwoStatePreference#setSummaryOff(int)(int summaryResId)` | | `void` | `https://developer.android.com/reference/androidx/preference/TwoStatePreference#setSummaryOn(java.lang.CharSequence)(@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/CharSequence.html summary)` Sets the summary to be shown when checked. | | `void` | `https://developer.android.com/reference/androidx/preference/TwoStatePreference#setSummaryOn(int)(int summaryResId)` | | `boolean` | `https://developer.android.com/reference/androidx/preference/TwoStatePreference#shouldDisableDependents()()` Checks whether this preference's dependents should currently be disabled. | | `void` | `https://developer.android.com/reference/androidx/preference/TwoStatePreference#syncSummaryView(androidx.preference.PreferenceViewHolder)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/preference/PreferenceViewHolder holder)` Sync a summary holder contained within holder's sub-hierarchy with the correct summary text. | |

## Public constructors

### SwitchPreference

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/preference#1.0.0)

```
public SwitchPreference(@NonNull Context context)
```

Construct a new SwitchPreference with default style options.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context` | The `https://developer.android.com/reference/android/content/Context.html` that will style this preference |

### SwitchPreference

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/preference#1.0.0)

```
public SwitchPreference(@NonNull Context context, @Nullable AttributeSet attrs)
```

Construct a new SwitchPreference with the given style options.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context` | The `https://developer.android.com/reference/android/content/Context.html` that will style this preference |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/util/AttributeSet.html attrs` | Style attributes that differ from the default |

### SwitchPreference

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/preference#1.0.0)

```
public SwitchPreference(
    @NonNull Context context,
    @Nullable AttributeSet attrs,
    int defStyleAttr
)
```

Construct a new SwitchPreference with the given style options.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context` | The `https://developer.android.com/reference/android/content/Context.html` that will style this preference |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/util/AttributeSet.html attrs` | Style attributes that differ from the default |
| `int defStyleAttr` | An attribute in the current theme that contains a reference to a style resource that supplies default values for the view. Can be 0 to not look for defaults. |

### SwitchPreference

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/preference#1.0.0)

```
public SwitchPreference(
    @NonNull Context context,
    @Nullable AttributeSet attrs,
    int defStyleAttr,
    int defStyleRes
)
```

Construct a new SwitchPreference with the given style options.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context` | The `https://developer.android.com/reference/android/content/Context.html` that will style this preference |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/util/AttributeSet.html attrs` | Style attributes that differ from the default |
| `int defStyleAttr` | An attribute in the current theme that contains a reference to a style resource that supplies default values for the view. Can be 0 to not look for defaults. |
| `int defStyleRes` | A resource identifier of a style resource that supplies default values for the view, used only if defStyleAttr is 0 or can not be found in the theme. Can be 0 to not look for defaults. |

## Public methods

### getSwitchTextOff

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/preference#1.0.0)

```
public @Nullable CharSequence getSwitchTextOff()
```

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/CharSequence.html` | The text that will be displayed on the switch widget in the off state |

### getSwitchTextOn

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/preference#1.0.0)

```
public @Nullable CharSequence getSwitchTextOn()
```

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/CharSequence.html` | The text that will be displayed on the switch widget in the on state |

### onBindViewHolder

```
public void onBindViewHolder(@NonNull PreferenceViewHolder holder)
```

Binds the created View to the data for this preference.

This is a good place to grab references to custom Views in the layout and set properties on them.

Make sure to call through to the superclass's implementation.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/preference/PreferenceViewHolder holder` | The ViewHolder that provides references to the views to fill in. These views will be recycled, so you should not hold a reference to them after this method returns. |

### setSwitchTextOff

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/preference#1.0.0)

```
public void setSwitchTextOff(@Nullable CharSequence offText)
```

Set the text displayed on the switch widget in the off state. This should be a very short string, one word if possible.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/CharSequence.html offText` | Text to display in the off state |

### setSwitchTextOff

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/preference#1.0.0)

```
public void setSwitchTextOff(int resId)
```

Set the text displayed on the switch widget in the off state. This should be a very short string, one word if possible.

| Parameters |
|---|---|
| `int resId` | The text as a string resource ID |

### setSwitchTextOn

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/preference#1.0.0)

```
public void setSwitchTextOn(@Nullable CharSequence onText)
```

Set the text displayed on the switch widget in the on state. This should be a very short string, one word if possible.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/java/lang/CharSequence.html onText` | Text to display in the on state |

### setSwitchTextOn

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/preference#1.0.0)

```
public void setSwitchTextOn(int resId)
```

Set the text displayed on the switch widget in the on state. This should be a very short string, one word if possible.

| Parameters |
|---|---|
| `int resId` | The text as a string resource ID |