在android中通过分页从网络获取更新数据

在android中通过分页从网络获取更新数据,android,Android,我使用分页从网络获取数据,作为唯一的数据源。在PagedListAdapter中,我有一个按钮,单击该按钮将更新网络中的数据。现在,我需要获取更新的数据并更改该项目的视图。我该怎么做?。有没有一种方法可以在不使用db的情况下实现这一点 假设我有一个名为Post的模型,它有一个名为isSaved的字段。因此,我现在要做的是,当我在PagedListAdapter视图中单击save按钮时,然后我调用api来更新该字段。因此,现在我想获取该特定post项的更新值,并将按钮的文本更改为saved…。因为

我使用分页从网络获取数据,作为唯一的数据源。在PagedListAdapter中,我有一个按钮,单击该按钮将更新网络中的数据。现在,我需要获取更新的数据并更改该项目的视图。我该怎么做?。有没有一种方法可以在不使用db的情况下实现这一点


假设我有一个名为Post的模型,它有一个名为isSaved的字段。因此,我现在要做的是,当我在PagedListAdapter视图中单击save按钮时,然后我调用api来更新该字段。因此,现在我想获取该特定post项的更新值,并将按钮的文本更改为saved…。因为我使用的是adapter.submit(listOfPost),列表是相同的,因此没有调用DiffUtil itemCallback…我应该怎么做???

假设您通过第1页,然后以返回30个项目为例。所以你需要检查的就是recyclerview是否可以垂直滚动。如果没有,则增加页码并再次调用api方法

若要检查recyclerView是否有更多项目可滚动到下面,方法将帮助您

   mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {

            if(!mRecyclerView.canScrollVertically(1)){
                // search the next page
                searchNextPage();
            }
        }
    });

有关更多详细信息,此链接将对您有所帮助:

在您的api中是否传递页码参数?是的,我传递页码和页码大小作为参数。这些参数表示我有一个名为Post的模型,它有一个名为isSaved的字段。因此,我现在要做的是,当我在PagedListAdapter视图中单击save按钮时,然后我调用api来更新该字段。因此,现在我想获取该特定post项的更新值,并将按钮的文本更改为saved…。因为我使用的是adapter.submit(listOfPost),列表是一样的,所以DiffUtil itemCallback没有被调用…我应该怎么做?在这种情况下,你应该在更新api的成功响应中再次调用listing api。是的,这就是我所做的,但它更新了整个列表,而不是我试图得到的特定列表。因此,如果我在位置10,整个列表将更新并滚动到顶部,你可以使用notifyItemchanged()并将要更新的项目的位置100%传递给它。