如何获得有限号回收器视图中的数据集

问题描述 投票:0回答:3

我正在使用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() {

                                 }
                             });

有人请让我知道如何获得期望的输出。任何帮助将不胜感激。

谢谢

android retrofit2 rx-java2
3个回答
1
投票

进入RecyclerView适配器类

 @Override
    public int getItemCount() {
        return 5;
    }

0
投票

您可以使用arraylist的子列表方法。在这里,第一个参数指示从中创建子列表的起始索引,第二个参数指示项数。

homeHindiList.addAll(homeHindiModels.subList(0, 5));

0
投票

当从远程资源获取数据时,您只能将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() {

            }
        })
© www.soinside.com 2019 - 2024. All rights reserved.