# SelectionTracker.SelectionObserver

# SelectionTracker.SelectionObserver

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

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/recyclerview/selection/SelectionTracker.SelectionObserver "View this page in Java")

<br />

```
abstract class SelectionTracker.SelectionObserver<K>
```

<br />

*** ** * ** ***

Observer class providing access to information about Selection state changes.  

| Parameters |
|------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `<K>`      | Selection key type. @see[StorageStrategy](https://developer.android.com/reference/kotlin/androidx/recyclerview/selection/StorageStrategy)for supported types. |

## Summary

|                                                                    ### Public constructors                                                                     |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [SelectionObserver](https://developer.android.com/reference/kotlin/androidx/recyclerview/selection/SelectionTracker.SelectionObserver#SelectionObserver())`()` |

|                             ### Public functions                              |
|-------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [onItemStateChanged](https://developer.android.com/reference/kotlin/androidx/recyclerview/selection/SelectionTracker.SelectionObserver#onItemStateChanged(K,boolean))`(key: K, selected: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)`)` Called when the state of an item has been changed.                                                                                                                                                                                                                                                             |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [onSelectionChanged](https://developer.android.com/reference/kotlin/androidx/recyclerview/selection/SelectionTracker.SelectionObserver#onSelectionChanged())`()` Called immediately after completion of any set of changes, excluding those resulting in calls to[onSelectionRefresh](https://developer.android.com/reference/kotlin/androidx/recyclerview/selection/SelectionTracker.SelectionObserver#onSelectionRefresh())and[onSelectionRestored](https://developer.android.com/reference/kotlin/androidx/recyclerview/selection/SelectionTracker.SelectionObserver#onSelectionRestored()). |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [onSelectionRefresh](https://developer.android.com/reference/kotlin/androidx/recyclerview/selection/SelectionTracker.SelectionObserver#onSelectionRefresh())`()` Called when the underlying data set has changed.                                                                                                                                                                                                                                                                                                                                                                               |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [onSelectionRestored](https://developer.android.com/reference/kotlin/androidx/recyclerview/selection/SelectionTracker.SelectionObserver#onSelectionRestored())`()` Called immediately after selection is restored.                                                                                                                                                                                                                                                                                                                                                                              |

## Public constructors

### SelectionObserver

Added in 1.0.0  

```
SelectionObserver()
```  

## Public functions

### onItemStateChanged

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

```
fun onItemStateChanged(key: K, selected: Boolean): Unit
```

Called when the state of an item has been changed.  

### onSelectionChanged

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

```
fun onSelectionChanged(): Unit
```

Called immediately after completion of any set of changes, excluding those resulting in calls to[onSelectionRefresh](https://developer.android.com/reference/kotlin/androidx/recyclerview/selection/SelectionTracker.SelectionObserver#onSelectionRefresh())and[onSelectionRestored](https://developer.android.com/reference/kotlin/androidx/recyclerview/selection/SelectionTracker.SelectionObserver#onSelectionRestored()).  

### onSelectionRefresh

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

```
fun onSelectionRefresh(): Unit
```

Called when the underlying data set has changed. After this method is called SelectionTracker will traverse the existing selection, calling[onItemStateChanged](https://developer.android.com/reference/kotlin/androidx/recyclerview/selection/SelectionTracker.SelectionObserver#onItemStateChanged(K,boolean))for each selected item, and deselecting any items that cannot be selected given the updated data-set (and after consulting SelectionPredicate).  

### onSelectionRestored

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

```
fun onSelectionRestored(): Unit
```

Called immediately after selection is restored.[onItemStateChanged](https://developer.android.com/reference/kotlin/androidx/recyclerview/selection/SelectionTracker.SelectionObserver#onItemStateChanged(K,boolean))will \*not\* be called for individual items in the selection.