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

Posted

技术标签:

【中文标题】如何在Android中将大型json数组拆分为页面【英文标题】:How to split large json array into pages in Android 【发布时间】:2019-12-14 09:53:13 【问题描述】:

我正在从https://jsonplaceholder.typicode.com/photos 获取 json 数据,并希望将这些数据拆分为页面,以便我可以在我的应用中实现 android 分页库。有谁知道我如何做到这一点?

【问题讨论】:

【参考方案1】:

第 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

【讨论】:

谢谢。我必须每次在 URL 中手动设置这些值吗?【参考方案2】:

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

    另一种方法

    从 api 中获取特定数量的数据并添加到 recyleview 中,然后在再次加载特定数据后执行以下操作,您将调用进一步剩余的特定数据创建计数器来计算加载的数据。

    李> getalltemlist() 是一种获取 json 的方法。

    参考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();
    

【讨论】:

以上是关于如何在Android中将大型json数组拆分为页面的主要内容,如果未能解决你的问题,请参考以下文章

如何在git中将大型合并请求拆分为多个部分

如何在android中将json对象从json数组转换为字符串数组

如何在android中将HashMap转换为json数组?

如何在SSIS中将大型Excel文件拆分为多个小文件?

如何在awk中将分隔字符串拆分为数组?

如何在 C++ 中将数字字符串拆分为数组? [复制]