【问题标题】:Android Room how to search by text when using DataSource.Factory?Android Room 使用 DataSource.Factory 时如何按文本搜索?
【发布时间】:2020-01-15 10:13:58
【问题描述】:

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

DAO.kt

@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()

关键字更改后如何更新列表?

【问题讨论】:

    标签: android android-room android-pagedlistview


    【解决方案1】:

    keyword 更改时,您必须再次调用itemUseCase.getItems(keyword)

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

    更多详情请看answer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-25
      • 2013-12-15
      • 1970-01-01
      相关资源
      最近更新 更多