本文整理汇总了Java中android.arch.paging.TiledDataSource类的典型用法代码示例。如果您正苦于以下问题:Java TiledDataSource类的具体用法?Java TiledDataSource怎么用?Java TiledDataSource使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
TiledDataSource类属于android.arch.paging包,在下文中一共展示了TiledDataSource类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: initGankPageList
import android.arch.paging.TiledDataSource; //导入依赖的package包/类
private void initGankPageList(final String title) {
final TiledDataSource<Gank> gankTiledDataSource = new TiledDataSource<Gank>() {
/**
* 需要的总个数,如果数量不定,就传COUNT_UNDEFINED.
*/
@Override
public int countItems() {
return DataSource.COUNT_UNDEFINED;
}
/**
* 返回需要加载的数据.
* 这里是在线程异步中执行的,所以可以同步请求数据并且返回
* @param startPosition 现在第几个数据
* @param count 加载的数据数量
*/
@Override
public List<Gank> loadRange(int startPosition, int count) {
List<Gank> ganks = new ArrayList<>();
try {
Response<GankData> execute = ApiFactory.getGankApi().getCategoryDataSync
(title, mPage).execute();
List<Gank> results = execute.body().results;
ganks.addAll(results);
if (!ganks.isEmpty()) {
mPage++;
}
} catch (IOException e) {
e.printStackTrace();
}
return ganks;
}
};
mGankLiveData = new LivePagedListProvider<Integer, Gank>() {
@Override
protected DataSource<Integer, Gank> createDataSource() {
return gankTiledDataSource;
}
}.create(0, new PagedList.Config.Builder()
.setPageSize(NEED_NUMBER)
.setPrefetchDistance(2)
.setEnablePlaceholders(false)
.build());
}