android - 如何使用 Kotlin 过滤 RecyclerView?
问题描述
我刚开始使用 kotlin 和 room 数据库,在我的片段中,我有一个RecyclerView
和一个EditText
我将用作搜索RecyclerView
. RecyclerView 的适配器在我的ViewModel
observable 内,我实际上已经为我设置了一个 TextWatcher,EditText
但是由于 RecyclerView 的数据来自我的房间数据库,我应该如何设置过滤?
当 EditText 为空时,我应该从 LiveData observable 中返回项目。
这是我的片段代码:
private lateinit var recyclerView: RecyclerView
private lateinit var txtSearch: EditText
private val articoliViewModel: ArticoliViewModel
get() = (activity as MainActivity).articoliViewModel
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
recyclerView = view.findViewById(R.id.recyclerView)
txtSearch = view.findViewById(R.id.txtSearch)
val adapter = ArticoliListAdapter()
recyclerView.adapter = adapter
recyclerView.layoutManager = LinearLayoutManager(activity)
articoliViewModel.articoli.observe(viewLifecycleOwner) { articoli ->
// Update the cached copy of the words in the adapter.
articoli.let { adapter.submitList(it) }
}
txtSearch.addTextChangedListener(object : TextWatcher {
override fun afterTextChanged(s: Editable?) {
}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
}
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
}
})
}