# StatefulAdapter

# StatefulAdapter

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

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/viewpager2/adapter/StatefulAdapter "View this page in Java")

<br />

```
interface StatefulAdapter
```

<br />

Known direct subclasses  
[FragmentStateAdapter](https://developer.android.com/reference/kotlin/androidx/viewpager2/adapter/FragmentStateAdapter)  

|-------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|
| [FragmentStateAdapter](https://developer.android.com/reference/kotlin/androidx/viewpager2/adapter/FragmentStateAdapter) | Similar in behavior to[FragmentStatePagerAdapter](https://developer.android.com/reference/kotlin/androidx/fragment/app/FragmentStatePagerAdapter) |

*** ** * ** ***

[ViewPager2](https://developer.android.com/reference/kotlin/androidx/viewpager2/widget/ViewPager2)adapters should implement this interface to be called during[onSaveInstanceState](https://developer.android.com/reference/android/view/View.html#onSaveInstanceState())and[onRestoreInstanceState](https://developer.android.com/reference/android/view/View.html#onRestoreInstanceState(android.os.Parcelable))

## Summary

|                               ### Public functions                               |
|----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)    | [restoreState](https://developer.android.com/reference/kotlin/androidx/viewpager2/adapter/StatefulAdapter#restoreState(android.os.Parcelable))`(savedState: `[Parcelable](https://developer.android.com/reference/android/os/Parcelable.html)`)` Restores adapter state |
| [Parcelable](https://developer.android.com/reference/android/os/Parcelable.html) | [saveState](https://developer.android.com/reference/kotlin/androidx/viewpager2/adapter/StatefulAdapter#saveState())`()` Saves adapter state                                                                                                                             |

## Public functions

### restoreState

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

```
fun restoreState(savedState: Parcelable): Unit
```

Restores adapter state  

### saveState

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

```
fun saveState(): Parcelable
```

Saves adapter state