# ItemKeyedDataSource.LoadCallback

Artifact: [androidx.paging:paging-common](https://developer.android.com/jetpack/androidx/releases/paging) [View Source](https://cs.android.com/search?q=file:androidx/paging/ItemKeyedDataSource.jvmAndAndroid.kt+class:androidx.paging.ItemKeyedDataSource.LoadCallback) Added in [2.0.0](https://developer.android.com/jetpack/androidx/releases/paging#2.0.0) Deprecated in [3.0.0](https://developer.android.com/jetpack/androidx/releases/paging#3.0.0)

*** ** * ** ***


```
public abstract class ItemKeyedDataSource.LoadCallback<Value extends Object>
```

<br />

Known direct subclasses [ItemKeyedDataSource.LoadInitialCallback](https://developer.android.com/reference/androidx/paging/ItemKeyedDataSource.LoadInitialCallback)

|---|---|
| `https://developer.android.com/reference/androidx/paging/ItemKeyedDataSource.LoadInitialCallback` | **This class is deprecated.** ItemKeyedDataSource is deprecated and has been replaced by PagingSource |

*** ** * ** ***

> [!CAUTION]
> **This class is deprecated.**   
> ItemKeyedDataSource is deprecated and has been replaced by PagingSource, use this instead:
>
> ```
> PagingSource<Key, Value>
> ```

Callback for ItemKeyedDataSource `https://developer.android.com/reference/androidx/paging/ItemKeyedDataSource#loadBefore(androidx.paging.ItemKeyedDataSource.LoadParams)` and `https://developer.android.com/reference/androidx/paging/ItemKeyedDataSource#loadAfter(androidx.paging.ItemKeyedDataSource.LoadParams)` to return data.

A callback can be called only once, and will throw if called again.

It is always valid for a DataSource loading method that takes a callback to stash the callback and call it later. This enables DataSources to be fully asynchronous, and to handle temporary, recoverable error states (such as a network error that can be retried).

| Parameters |
|---|---|
| `<Value extends https://developer.android.com/reference/java/lang/Object.html>` | Type of items being loaded. |

## Summary

| ### Public constructors |
|---|
| `<Value extends https://developer.android.com/reference/java/lang/Object.html> [LoadCallback](https://developer.android.com/reference/androidx/paging/ItemKeyedDataSource.LoadCallback#LoadCallback())()` **This method is deprecated.** ItemKeyedDataSource is deprecated and has been replaced by PagingSource |

| ### Public methods |
|---|---|
| `abstract void` | `[onResult](https://developer.android.com/reference/androidx/paging/ItemKeyedDataSource.LoadCallback#onResult(kotlin.collections.List))(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull Value> data)` **This method is deprecated.** ItemKeyedDataSource is deprecated and has been replaced by PagingSource |

## Public constructors

### LoadCallback

```
public <Value extends Object> [LoadCallback](https://developer.android.com/reference/androidx/paging/ItemKeyedDataSource.LoadCallback#LoadCallback())()
```

> [!CAUTION]
> **This method is deprecated.**   
> ItemKeyedDataSource is deprecated and has been replaced by PagingSource, use this instead:
>
> ```
> PagingSource<Key, Value>
> ```

| Parameters |
|---|---|
| `<Value extends https://developer.android.com/reference/java/lang/Object.html>` | Type of items being loaded. |

## Public methods

### onResult

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

```
public abstract void [onResult](https://developer.android.com/reference/androidx/paging/ItemKeyedDataSource.LoadCallback#onResult(kotlin.collections.List))(@NonNull List<@NonNull Value> data)
```

> [!CAUTION]
> **This method is deprecated.**   
> ItemKeyedDataSource is deprecated and has been replaced by PagingSource, use this instead:
>
> ```
> PagingSource<Key, Value>
> ```

Called to pass loaded data from a DataSource.

Call this method from your ItemKeyedDataSource's `https://developer.android.com/reference/androidx/paging/ItemKeyedDataSource#loadBefore(androidx.paging.ItemKeyedDataSource.LoadParams)` and `https://developer.android.com/reference/androidx/paging/ItemKeyedDataSource#loadAfter(androidx.paging.ItemKeyedDataSource.LoadParams)` methods to return data.

Call this from `https://developer.android.com/reference/androidx/paging/ItemKeyedDataSource#loadInitial(androidx.paging.ItemKeyedDataSource.LoadInitialParams)` to initialize without counting available data, or supporting placeholders.

It is always valid to pass a different amount of data than what is requested. Pass an empty list if there is no more data to load.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull Value> data` | List of items loaded from the `https://developer.android.com/reference/androidx/paging/ItemKeyedDataSource`. |