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

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

【问题讨论】:

    标签: android json rest api


    【解决方案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

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

    【讨论】:

      猜你喜欢
      • 2021-01-15
      • 2023-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-18
      • 2016-03-12
      • 1970-01-01
      相关资源
      最近更新 更多