如何获得限制号回收者视图中的数据
How to get limited no. of data in recycler view
我正在使用 api 获取数据,因为我正在使用 Retrofit2 和 RxJava2 数据已成功获取,但我不想显示整个 items.I 只想显示列表中的 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() {
}
});
有人请让我知道我怎样才能得到想要的output.Any帮助将不胜感激。
谢谢
变成RecyclerView
Adapter
class
@Override
public int getItemCount() {
if(homeHindiList != null) {
if(homeHindiList.size() > 5) {
return 5;
} else
return homeHindiList.size();
} else
return 0;
}
您可以使用 arraylist 的子列表方法仅添加所需的项目,而不是添加 homeHindiModels 列表中的所有项目。这里第一个参数表示子列表创建的起始索引,第二个参数表示项目数。
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() {
}
})
我正在使用 api 获取数据,因为我正在使用 Retrofit2 和 RxJava2 数据已成功获取,但我不想显示整个 items.I 只想显示列表中的 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() {
}
});
有人请让我知道我怎样才能得到想要的output.Any帮助将不胜感激。
谢谢
变成RecyclerView
Adapter
class
@Override
public int getItemCount() {
if(homeHindiList != null) {
if(homeHindiList.size() > 5) {
return 5;
} else
return homeHindiList.size();
} else
return 0;
}
您可以使用 arraylist 的子列表方法仅添加所需的项目,而不是添加 homeHindiModels 列表中的所有项目。这里第一个参数表示子列表创建的起始索引,第二个参数表示项目数。
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() {
}
})