# PositionalDataSource.LoadInitialCallback

Summary:[Ctors](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadInitialCallback#pubctors)\|[Methods](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadInitialCallback#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadInitialCallback#inhmethods)  

# PositionalDataSource.LoadInitialCallback

| The`android.arch`Architecture Components packages are no longer maintained. They have been superseded by the corresponding[androidx.\*](https://developer.android.com/jetpack/androidx/migrate)packages. See[androidx.paging.PositionalDataSource.LoadInitialCallback](https://developer.android.com/reference/androidx/paging/PositionalDataSource.LoadInitialCallback)instead.

`
public
static

abstract
class
PositionalDataSource.LoadInitialCallback
`  
`

extends Object


``


`

|---|-------------------------------------------------------------------|
| java.lang.Object                                                     ||
| ↳ | android.arch.paging.PositionalDataSource.LoadInitialCallback\<T\> |

<br />

*** ** * ** ***

Callback for[loadInitial(LoadInitialParams, LoadInitialCallback)](https://developer.android.com/reference/android/arch/paging/PositionalDataSource#loadInitial(android.arch.paging.PositionalDataSource.LoadInitialParams, android.arch.paging.PositionalDataSource.LoadInitialCallback<T>))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).

## Summary

|                                                                                        ### Public constructors                                                                                         ||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| ` `[PositionalDataSource.LoadInitialCallback](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadInitialCallback#PositionalDataSource.LoadInitialCallback())`() ` |

|                                                                                                                                                 ### Public methods                                                                                                                                                 ||
|------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` abstract void` | ` `[onResult](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadInitialCallback#onResult(java.util.List<T>, int, int))`(List<T> data, int position, int totalCount) ` Called to pass initial load state from a DataSource.                                    |
| ` abstract void` | ` `[onResult](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadInitialCallback#onResult(java.util.List<T>, int))`(List<T> data, int position) ` Called to pass initial load state from a DataSource without total count, when placeholders aren't requested. |

| ### Inherited methods |
|-----------------------|---|
| From class` java.lang.Object ` |-------------------|-------------------------------| | ` Object`         | ` clone() `                   | | ` boolean`        | ` equals(Object arg0) `       | | ` void`           | ` finalize() `                | | ` final Class<?>` | ` getClass() `                | | ` int`            | ` hashCode() `                | | ` final void`     | ` notify() `                  | | ` final void`     | ` notifyAll() `               | | ` String`         | ` toString() `                | | ` final void`     | ` wait(long arg0, int arg1) ` | | ` final void`     | ` wait(long arg0) `           | | ` final void`     | ` wait() `                    | ||

## Public constructors

### PositionalDataSource.LoadInitialCallback

```
PositionalDataSource.LoadInitialCallback ()
```

<br />

<br />

## Public methods

### onResult

```
void onResult (List<T> data, 
                int position, 
                int totalCount)
```

Called to pass initial load state from a DataSource.

Call this method from your DataSource's`loadInitial`function to return data, and inform how many placeholders should be shown before and after. If counting is cheap to 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[placeholdersEnabled](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadInitialParams#placeholdersEnabled)is false), you can instead call[onResult(List, int)](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadInitialCallback#onResult(java.util.List<T>, int)).

<br />

|                                                                                                     Parameters                                                                                                      ||
|--------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `data`       | `List`: List of items loaded from the DataSource. If this is empty, the DataSource is treated as empty, and no further loads will occur. <br />                                                       |
| `position`   | `int`: 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`. <br />                                          |
| `totalCount` | `int`: Total number of items that may be returned from this DataSource. Includes the number in the initial`data`parameter as well as any items that can be loaded in front or behind of`data`. <br /> |

### onResult

```
void onResult (List<T> data, 
                int position)
```

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 ([placeholdersEnabled](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadInitialParams#placeholdersEnabled)is false).

Call this method from your DataSource's`loadInitial`function to return data, if position is known but total size is not. If placeholders are requested, call the three parameter variant:[onResult(List, int, int)](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadInitialCallback#onResult(java.util.List<T>, int, int)).

<br />

|                                                                                Parameters                                                                                ||
|------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `data`     | `List`: List of items loaded from the DataSource. If this is empty, the DataSource is treated as empty, and no further loads will occur. <br />              |
| `position` | `int`: 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 DataSource, pass`N`. <br /> |

-

  ## Interfaces

  - [DataSource.InvalidatedCallback](https://developer.android.com/reference/android/arch/paging/DataSource.InvalidatedCallback)
-

  ## Classes

  - [AsyncPagedListDiffer](https://developer.android.com/reference/android/arch/paging/AsyncPagedListDiffer)
  - [DataSource](https://developer.android.com/reference/android/arch/paging/DataSource)
  - [DataSource.Factory](https://developer.android.com/reference/android/arch/paging/DataSource.Factory)
  - [ItemKeyedDataSource](https://developer.android.com/reference/android/arch/paging/ItemKeyedDataSource)
  - [ItemKeyedDataSource.LoadCallback](https://developer.android.com/reference/android/arch/paging/ItemKeyedDataSource.LoadCallback)
  - [ItemKeyedDataSource.LoadInitialCallback](https://developer.android.com/reference/android/arch/paging/ItemKeyedDataSource.LoadInitialCallback)
  - [ItemKeyedDataSource.LoadInitialParams](https://developer.android.com/reference/android/arch/paging/ItemKeyedDataSource.LoadInitialParams)
  - [ItemKeyedDataSource.LoadParams](https://developer.android.com/reference/android/arch/paging/ItemKeyedDataSource.LoadParams)
  - [LivePagedListBuilder](https://developer.android.com/reference/android/arch/paging/LivePagedListBuilder)
  - [PagedList](https://developer.android.com/reference/android/arch/paging/PagedList)
  - [PagedList.BoundaryCallback](https://developer.android.com/reference/android/arch/paging/PagedList.BoundaryCallback)
  - [PagedList.Builder](https://developer.android.com/reference/android/arch/paging/PagedList.Builder)
  - [PagedList.Callback](https://developer.android.com/reference/android/arch/paging/PagedList.Callback)
  - [PagedList.Config](https://developer.android.com/reference/android/arch/paging/PagedList.Config)
  - [PagedList.Config.Builder](https://developer.android.com/reference/android/arch/paging/PagedList.Config.Builder)
  - [PagedListAdapter](https://developer.android.com/reference/android/arch/paging/PagedListAdapter)
  - [PageKeyedDataSource](https://developer.android.com/reference/android/arch/paging/PageKeyedDataSource)
  - [PageKeyedDataSource.LoadCallback](https://developer.android.com/reference/android/arch/paging/PageKeyedDataSource.LoadCallback)
  - [PageKeyedDataSource.LoadInitialCallback](https://developer.android.com/reference/android/arch/paging/PageKeyedDataSource.LoadInitialCallback)
  - [PageKeyedDataSource.LoadInitialParams](https://developer.android.com/reference/android/arch/paging/PageKeyedDataSource.LoadInitialParams)
  - [PageKeyedDataSource.LoadParams](https://developer.android.com/reference/android/arch/paging/PageKeyedDataSource.LoadParams)
  - [PositionalDataSource](https://developer.android.com/reference/android/arch/paging/PositionalDataSource)
  - [PositionalDataSource.LoadInitialCallback](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadInitialCallback)
  - [PositionalDataSource.LoadInitialParams](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadInitialParams)
  - [PositionalDataSource.LoadRangeCallback](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadRangeCallback)
  - [PositionalDataSource.LoadRangeParams](https://developer.android.com/reference/android/arch/paging/PositionalDataSource.LoadRangeParams)
  - [RxPagedListBuilder](https://developer.android.com/reference/android/arch/paging/RxPagedListBuilder)