Метод loadInitial не вызывается в PositionalDataSourceJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Метод loadInitial не вызывается в PositionalDataSource

Сообщение Anonymous »

Я реализую PositionalDataSource из библиотеки подкачки на Java и столкнулся с проблемой: вызывается конструктор дочернего класса PositionalDataSource, но после этого метод loadInitial не вызывается.

Код: Выделить всё

public HistoryPositionalDataSource(List callLogs)
{
this.callLogs = callLogs;
Log.d("PaginationDataSource", "Constructor");
}

@Override
public void loadInitial(@NonNull LoadInitialParams params, @NonNull LoadInitialCallback callback) {
Log.d("PaginationDataSource", "loadInitial");
if (callLogs!=null && !callLogs.isEmpty())
{
int totalCount = computeCount();
int position = computeInitialLoadPosition(params, totalCount);
int loadSize = computeInitialLoadSize(params, position, totalCount);
callback.onResult(loadRangeInternal(position, loadSize), position, totalCount);
}
}

@Override
public void loadRange(@NonNull LoadRangeParams params, @NonNull LoadRangeCallback callback) {
callback.onResult(loadRangeInternal(params.startPosition, params.loadSize));
}
Вот моя конфигурация PageList

Код: Выделить всё

private void init() {
pagedListConfig = (new PagedList.Config.Builder()).setEnablePlaceholders(true)
.setInitialLoadSizeHint(Integer.MAX_VALUE).setPageSize(Integer.MAX_VALUE).build();
Executor executor = Executors.newFixedThreadPool(3);
List listLogs = getCallLogs(context);
historyDataSourceFactory = new HistoryDataSourceFactory(listLogs);
LivePagedListBuilder livePagedListBuilder = new LivePagedListBuilder(historyDataSourceFactory, pagedListConfig);
pagedCallLogs =  livePagedListBuilder
.setFetchExecutor(executor)
.build();
}
Фабричный класс:

Код: Выделить всё

public class HistoryDataSourceFactory extends DataSource.Factory {

private static final String TAG = HistoryDataSourceFactory.class.getSimpleName();
private HistoryPositionalDataSource historyPositionalDataSource;

public HistoryDataSourceFactory(List callLogs)
{
if (callLogs!=null && !callLogs.isEmpty())
{
Log.d("PaginationFactory", "NotNullLogs");
historyPositionalDataSource = new HistoryPositionalDataSource(callLogs);
}
}

@Override
public DataSource create() {
return historyPositionalDataSource;
}
}
Мой метод getPagedCallLogs:

Код: Выделить всё

public synchronized LiveData getPagedCallLogs() {

if (pagedCallLogs!=null && pagedCallLogs.getValue()!=null)
{
Log.d("PagingGetData", "Done");
return pagedCallLogs;
}
else
{
Log.d("PagingGetData", "Null");
return null;
}
}
Изображение журналов приведено ниже.
Изображение


Подробнее здесь: https://stackoverflow.com/questions/553 ... sourceitem
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»