如何在Android中将大型json数组拆分为页面

时间:2019-08-06 19:36:47

标签: android json rest api

我正在从https://jsonplaceholder.typicode.com/photos获取json数据,并希望将此数据拆分为页面,以便可以在我的应用程序中实现Android Paging Library。有谁知道我怎么能做到这一点?

2 个答案:

答案 0 :(得分:0)

第1页(返回ID为1到10的照片): https://jsonplaceholder.typicode.com/photos?_start=0&_limit=10

第2页(返回ID为11到20的照片) https://jsonplaceholder.typicode.com/photos?_start=10&_limit=10

答案 1 :(得分:0)

  

对于分页,您将使用android jetpack   https://developer.android.com/topic/libraries/architecture/paging

  1. 另一种方法

  2. 从api中获取特定数量的数据,然后添加到recyleview中,然后再次加载特定数据后执行以下操作,您将调用其他剩余的特定数据作为计算加载数据的计数器。

  3. getalltemlist()是从中获取json的方法。
  4. 参考文献https://www.youtube.com/watch?v=2-vZ1g_G1Zo

         boolean isScrolling=false;
    
       rView.setAdapter(adapter);
       rView.addOnScrollListener(new RecyclerView.OnScrollListener() {
           @Override
           public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int 
          newState) {
               super.onScrollStateChanged(recyclerView, newState);
               if(newState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL)
               {
                   isScrolling=true;
               }
           }
    
           @Override
           public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
               super.onScrolled(recyclerView, dx, dy);
               currentitems=layoutManager.getChildCount();
               totaliitems=layoutManager.getItemCount();
               scrolloutitems=layoutManager.findFirstVisibleItemPosition();
               if(isScrolling && (currentitems + scrolloutitems == totaliitems))
               {
                   isScrolling=false;
                   getAllItemList();
               }
           }
       });
    adapter.notifyDataSetChanged();
    getAllItemList();