如何在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数组拆分为页面的主要内容,如果未能解决你的问题,请参考以下文章