Android Room在使用DataSource.Factory时如何通过文本进行搜索?

Android Room在使用DataSource.Factory时如何通过文本进行搜索?,android,android-room,android-pagedlistview,Android,Android Room,Android Pagedlistview,在我的项目中,使用PagedListAdapter进行分页,应用程序还可以按关键字进行搜索 DAO.kt 创造 当关键字更改时,如何更新列表?当关键字更改时,您必须再次调用itemUseCase.getItemskeyword 看。它是用Java编写的,但它展示了如何使用PagingLibrary实现搜索场景 有关更多详细信息,请参见此 @Query("SELECT * FROM Item WHERE name LIKE :keyword") fun getItems(keyword: Stri

在我的项目中,使用PagedListAdapter进行分页,应用程序还可以按关键字进行搜索

DAO.kt

创造

当关键字更改时,如何更新列表?

当关键字更改时,您必须再次调用itemUseCase.getItemskeyword

看。它是用Java编写的,但它展示了如何使用PagingLibrary实现搜索场景

有关更多详细信息,请参见此

@Query("SELECT * FROM Item WHERE name LIKE :keyword")
fun getItems(keyword: String): DataSource.Factory<Int, ItemEntity>
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()