# Preference.OnPreferenceChangeListener

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

*** ** * ** ***


```
public interface Preference.OnPreferenceChangeListener
```

<br />

*** ** * ** ***

Interface definition for a callback to be invoked when the value of this `https://developer.android.com/reference/androidx/preference/Preference` has been changed by the user and is about to be set and/or persisted. This gives the client a chance to prevent setting and/or persisting the value.

## Summary

| ### Public methods |
|---|---|
| `abstract boolean` | `https://developer.android.com/reference/androidx/preference/Preference.OnPreferenceChangeListener#onPreferenceChange(androidx.preference.Preference,java.lang.Object)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/preference/Preference preference, https://developer.android.com/reference/java/lang/Object.html newValue)` Called when a preference has been changed by the user. |

## Public methods

### onPreferenceChange

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

```
abstract boolean onPreferenceChange(@NonNull Preference preference, Object newValue)
```

Called when a preference has been changed by the user. This is called before the state of the preference is about to be updated and before the state is persisted.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/preference/Preference preference` | The changed preference |
| `https://developer.android.com/reference/java/lang/Object.html newValue` | The new value of the preference |

| Returns |
|---|---|
| `boolean` | `true` to update the state of the preference with the new value |