我正在使用api来获取数据,因为我正在使用Retrofit2,并且RxJava2数据已成功获取,但是我不想显示整个项目。我只想显示列表中的5个项目。
下面是我的代码:
Retrofit retrofit = RetrofitClient.getInstance();
ApiService myApi = retrofit.create(ApiService.class);
myApi.getHindiNews(data).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<List<HomeHindiModel>>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(List<HomeHindiModel> homeHindiModels) {
if(homeHindiModels.size() > 0){
homeHindiList.addAll(homeHindiModels);
homeHindiAdapter = new HomeHindiAdapter(homeHindiList,getActivity());
hindiRecycler.setAdapter(homeHindiAdapter);
}
}
@Override
public void onError(Throwable e) {
Toast.makeText(getActivity(),e.getMessage(),Toast.LENGTH_SHORT).show();
}
@Override
public void onComplete() {
}
});
有人请让我知道如何获得期望的输出。任何帮助将不胜感激。
谢谢
进入RecyclerView适配器类
@Override
public int getItemCount() {
return 5;
}
您可以使用arraylist的子列表方法。在这里,第一个参数指示从中创建子列表的起始索引,第二个参数指示项数。
homeHindiList.addAll(homeHindiModels.subList(0, 5));
当从远程资源获取数据时,您只能将5个项目推送到您要发送适配器的数据源中。
Retrofit retrofit = RetrofitClient.getInstance();
ApiService myApi = retrofit.create(ApiService.class);
myApi.getHindiNews(data).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<List<HomeHindiModel>>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(List<HomeHindiModel> homeHindiModels) {
if(homeHindiModels.size() > 0){
homeHindiList.addAll(homeHindiModels.subList(0, 5));
// homeHindiList.addAll(homeHindiModels);
homeHindiAdapter = new HomeHindiAdapter(homeHindiList,getActivity());
hindiRecycler.setAdapter(homeHindiAdapter);
}
}
@Override
public void onError(Throwable e) {
Toast.makeText(getActivity(),e.getMessage(),Toast.LENGTH_SHORT).show();
}
@Override
public void onComplete() {
}
})