如何获得限制号回收者视图中的数据

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帮助将不胜感激。

谢谢

变成RecyclerViewAdapterclass

@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() {

            }
        })