小编Kos*_*ysh的帖子

如何在 Room 中将 SearchView 与 LiveData 和 ViewModel 结合使用

我想使用 SearchView 搜索房间数据库中的某个元素,但我遇到了一个问题,因为我无法在 RecyclerViewAdapter 中使用 getFilter 因为我有 ViewModel 也许谁知道如何将所有这些元素组合到一个项目中。
\n我搜索一种使用 Transormations.switchMap 的方法。但我无法连接它们。

\n\n
\n

产品视图模型

\n
\n\n
class ProductViewModel(application: Application) : AndroidViewModel(application) {\n    private val repository: ProductRepository\n\n    val allProducts: LiveData<List<ProductEntity>>\n    private val searchStringLiveData = MutableLiveData<String>()\n\n    init {\n        val productDao = ProductsDB.getDatabase(application, viewModelScope).productDao()\n        repository = ProductRepository(productDao)\n        allProducts = repository.allProducts\n        searchStringLiveData.value = ""\n    }\n\n    fun insert(productEntity: ProductEntity) = viewModelScope.launch {\n        repository.insert(productEntity)\n    }\n\n\n    val products = Transformations.switchMap(searchStringLiveData) { string ->\n        repository.getAllListByName(string)\n\n    }\n\n    fun searchNameChanged(name: String) {\n        searchStringLiveData.value = name\n    }\n\n\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n

产品道 …

android viewmodel kotlin searchview

0
推荐指数
1
解决办法
2441
查看次数

标签 统计

android ×1

kotlin ×1

searchview ×1

viewmodel ×1