如何将搜索建议动态发送到数据源的改造参数并在 Android jetpack 分页库中获取更新的分页列表?
这是我在改造 Web 服务中的 Web 功能,可以带来数据。
@GET(version + "/get-bills")
Call<ApiResponse<BillsModel>> getPartnerBillsSorted(@Query("page")int page, @Query("type")int type,@Query("search")String search );
这个 api 在数据源中被调用,它给了我所有数据的列表,我使用 pagedlist 在 reyclerview 中列出了这些数据。但是我很困惑,不知道如何在运行时在数据源中调用此api,然后根据我在自动完成文本视图中搜索的内容获取更新的pagedlist。
我该怎么办? 我应该在每次点击自动完成功能时创建新的数据源实例和数据源工厂和页面列表,还是如何动态更改相同的数据源调用并获取更新的页面列表?
您无需更改 Web 服务中的任何内容。您可以创建一个常量类(getter setter)等并像这样更改数据源类。
compositeDisposable.add(
networkService.getPartnerBillsSorted(Costant.PAGE,
,Costant.TYPE
,Costant.SEARCH
.subscribe()
然后在活动/片段中的搜索完整侦听器中调用它:
Constants.setSearch("search result");
viewModel.searchResultList.value.dataSource.invalidate();
在数据源类中创建一个字段(添加 getter、setters),将此字段传递给 Retrofit 调用。 稍后,如果要进行另一个调用,只需将所需的搜索查询设置为数据源实例,并在设置查询后调用 .invalidate()。
参考此文章https://android.jlelse.eu/android-paging-library-make-your-lists-as-efficient-as-possible-literally-in-just-an-hour-5abf797585bd