# PositionalDataSource.LoadInitialCallback

Artifact: [androidx.paging:paging-common](https://developer.android.com/jetpack/androidx/releases/paging) [View Source](https://cs.android.com/search?q=file:androidx/paging/PositionalDataSource.jvmAndAndroid.kt+class:androidx.paging.PositionalDataSource.LoadInitialCallback) 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 PositionalDataSource.LoadInitialCallback<T extends Object>
```

<br />

*** ** * ** ***

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

Callback for `https://developer.android.com/reference/androidx/paging/PositionalDataSource#loadInitial(androidx.paging.PositionalDataSource.LoadInitialParams)` to return data, position, and count.

A callback should be called only once, and may 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 |
|---|---|
| `<T extends https://developer.android.com/reference/java/lang/Object.html>` | Type of items being loaded. |

## Summary

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

| ### Public methods |
|---|---|
| `abstract void` | `[onResult](https://developer.android.com/reference/androidx/paging/PositionalDataSource.LoadInitialCallback#onResult(kotlin.collections.List,kotlin.Int))(@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 T> data, int position)` **This method is deprecated.** PositionalDataSource is deprecated and has been replaced by PagingSource |
| `abstract void` | `[onResult](https://developer.android.com/reference/androidx/paging/PositionalDataSource.LoadInitialCallback#onResult(kotlin.collections.List,kotlin.Int,kotlin.Int))(@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 T> data, int position, int totalCount)` **This method is deprecated.** PositionalDataSource is deprecated and has been replaced by PagingSource |

## Public constructors

### LoadInitialCallback

```
public <T extends Object> [LoadInitialCallback](https://developer.android.com/reference/androidx/paging/PositionalDataSource.LoadInitialCallback#LoadInitialCallback())()
```

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

| Parameters |
|---|---|
| `<T 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/PositionalDataSource.LoadInitialCallback#onResult(kotlin.collections.List,kotlin.Int))(@NonNull List<@NonNull T> data, int position)
```

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

Called to pass initial load state from a DataSource without total count, when placeholders aren't requested.

**Note:** This method can only be called when placeholders are disabled (i.e., `https://developer.android.com/reference/androidx/paging/PositionalDataSource.LoadInitialParams#placeholdersEnabled()` is `false`).

Call this method from `https://developer.android.com/reference/androidx/paging/PositionalDataSource#loadInitial(androidx.paging.PositionalDataSource.LoadInitialParams)` function to return data, if position is known but total size is not. If placeholders are requested, call the three parameter variant: `https://developer.android.com/reference/androidx/paging/PositionalDataSource.LoadInitialCallback#onResult(kotlin.collections.List,kotlin.Int)`.

| 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 T> data` | List of items loaded from the `https://developer.android.com/reference/androidx/paging/DataSource`. If this is empty, the `https://developer.android.com/reference/androidx/paging/DataSource` is treated as empty, and no further loads will occur. |
| `int position` | Position of the item at the front of the list. If there are N items before the items in data that can be provided by this `https://developer.android.com/reference/androidx/paging/DataSource`, pass N. |

### 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/PositionalDataSource.LoadInitialCallback#onResult(kotlin.collections.List,kotlin.Int,kotlin.Int))(@NonNull List<@NonNull T> data, int position, int totalCount)
```

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

Called to pass initial load state from a DataSource.

Call this method from `https://developer.android.com/reference/androidx/paging/PositionalDataSource#loadInitial(androidx.paging.PositionalDataSource.LoadInitialParams)` function to return data, and inform how many placeholders should be shown before and after. If counting is cheap compute (for example, if a network load returns the information regardless), it's recommended to pass the total size to the totalCount parameter. If placeholders are not requested (when `https://developer.android.com/reference/androidx/paging/PositionalDataSource.LoadInitialParams#placeholdersEnabled()` is false), you can instead call `https://developer.android.com/reference/androidx/paging/PositionalDataSource.LoadInitialCallback#onResult(kotlin.collections.List,kotlin.Int,kotlin.Int)`.

| 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 T> data` | List of items loaded from the `https://developer.android.com/reference/androidx/paging/DataSource`. If this is empty, the `https://developer.android.com/reference/androidx/paging/DataSource` is treated as empty, and no further loads will occur. |
| `int position` | Position of the item at the front of the list. If there are N items before the items in data that can be loaded from this DataSource, pass N. |
| `int totalCount` | Total number of items that may be returned from this DataSource. Includes the number in the initial `https://developer.android.com/reference/androidx/paging/PositionalDataSource.LoadInitialCallback#onResult(kotlin.collections.List,kotlin.Int,kotlin.Int)` parameter as well as any items that can be loaded in front or behind of `https://developer.android.com/reference/androidx/paging/PositionalDataSource.LoadInitialCallback#onResult(kotlin.collections.List,kotlin.Int,kotlin.Int)`. |