Android房间使用DataSource.Factory时如何按文字搜索?
Android Room how to search by text when using DataSource.Factory?
在我的项目中使用 PagedListAdapter
进行分页,应用程序还可以按关键字搜索。
DAO.kt
@Query("SELECT * FROM Item WHERE name LIKE :keyword")
fun getItems(keyword: String): DataSource.Factory<Int, ItemEntity>
Create
lateinit var itemLivePagedList: LiveData<PagedList<Item>>
.
.
.
val dataSourceFactory = itemUseCase.getItems(keyword)
val boundaryCallback = MyBoundaryCallback(itemUseCase, compositeDisposable, PAGE_SIZE)
itemLivePagedList = LivePagedListBuilder(dataSourceFactory, pagedListConfig)
.setBoundaryCallback(boundaryCallback)
.build()
关键字更改后如何更新列表?
当keyword
改变时,你必须再次调用itemUseCase.getItems(keyword)
。
看看this project。它是在 Java 中编写的,但它展示了如何使用 PagingLibrary 实现搜索场景。
有关详细信息,请参阅此 。
在我的项目中使用 PagedListAdapter
进行分页,应用程序还可以按关键字搜索。
DAO.kt
@Query("SELECT * FROM Item WHERE name LIKE :keyword")
fun getItems(keyword: String): DataSource.Factory<Int, ItemEntity>
Create
lateinit var itemLivePagedList: LiveData<PagedList<Item>>
.
.
.
val dataSourceFactory = itemUseCase.getItems(keyword)
val boundaryCallback = MyBoundaryCallback(itemUseCase, compositeDisposable, PAGE_SIZE)
itemLivePagedList = LivePagedListBuilder(dataSourceFactory, pagedListConfig)
.setBoundaryCallback(boundaryCallback)
.build()
关键字更改后如何更新列表?
当keyword
改变时,你必须再次调用itemUseCase.getItems(keyword)
。
看看this project。它是在 Java 中编写的,但它展示了如何使用 PagingLibrary 实现搜索场景。
有关详细信息,请参阅此