Android - 在适配器中过滤来自数据库的数据
Android - filter data from database in an adapter
我正在学习 Kotlin 并尝试将一些直接来自(房间)数据库的数据过滤到我的适配器中以显示它们。
这是我的代码(来自片段中,包含带适配器的回收视图):
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val adapter = LatestReleaseListAdapter {
}
binding.recyclerView.layoutManager = LinearLayoutManager(this.context)
binding.recyclerView.adapter = adapter
viewModel.allItems.observe(this.viewLifecycleOwner) { items ->
//Here I'd like to remove the items that has been seen already
items.filter { item -> !item.hasBeenSeen }
items.let {
adapter.submitList(it)
}
}
如您所见,代码非常简单。我只是想过滤布尔值“hasBeenSeen”为真的列表元素。我只想显示布尔值“hasBeenSeen”为假的那些。我怎样才能做到这一点?
对 filter
的调用将过滤项目,return 一个新集合将仅包含过滤后的项目。
所以你可以这样做
val filteredItems = items.filter { item -> !item.hasBeenSeen }
adapter.submitList(filteredItems)
或者保持简短
adapter.submitList(items.filter { item -> !item.hasBeenSeen })
我正在学习 Kotlin 并尝试将一些直接来自(房间)数据库的数据过滤到我的适配器中以显示它们。
这是我的代码(来自片段中,包含带适配器的回收视图):
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val adapter = LatestReleaseListAdapter {
}
binding.recyclerView.layoutManager = LinearLayoutManager(this.context)
binding.recyclerView.adapter = adapter
viewModel.allItems.observe(this.viewLifecycleOwner) { items ->
//Here I'd like to remove the items that has been seen already
items.filter { item -> !item.hasBeenSeen }
items.let {
adapter.submitList(it)
}
}
如您所见,代码非常简单。我只是想过滤布尔值“hasBeenSeen”为真的列表元素。我只想显示布尔值“hasBeenSeen”为假的那些。我怎样才能做到这一点?
对 filter
的调用将过滤项目,return 一个新集合将仅包含过滤后的项目。
所以你可以这样做
val filteredItems = items.filter { item -> !item.hasBeenSeen }
adapter.submitList(filteredItems)
或者保持简短
adapter.submitList(items.filter { item -> !item.hasBeenSeen })