Android 适配器回收视图中的列表为空
我想用房间数据库在回收者视图列表中进行搜索。在mhetod setAll中,我在arraylist中设置的值列出了该值设置一次的一些值(我调试)Android 适配器回收视图中的列表为空,android,kotlin,searchview,Android,Kotlin,Searchview,我想用房间数据库在回收者视图列表中进行搜索。在mhetod setAll中,我在arraylist中设置的值列出了该值设置一次的一些值(我调试) internal fun setAll(productEntity:List){ this.filterListResult=productEntity lists.addAll(filterListResult) notifyDataSetChanged() 搜索后,此列表已变为空 override fun getFilter(): Filter
internal fun setAll(productEntity:List){
this.filterListResult=productEntity
lists.addAll(filterListResult)
notifyDataSetChanged()
搜索后,此列表已变为空
override fun getFilter(): Filter {
return object : Filter() {
override fun performFiltering(constraint: CharSequence?): FilterResults {
val charSearch = constraint.toString()
if (charSearch.isEmpty())
filterListResult = productsList
else {
val resultList= ArrayList<ProductEntity>()
lists.size
for (row in lists){
if(row.productName.toLowerCase().contains(charSearch.toLowerCase()))
resultList.add(row)
}
filterListResult = resultList
override fun getFilter():过滤器{
返回对象:筛选器(){
重写fun performFiltering(约束:CharSequence?):FilterResults{
val charSearch=constraint.toString()
if(charSearch.isEmpty())
filterListResult=productsList
否则{
val resultList=ArrayList()
列表。大小
用于(列表中的行){
如果(row.productName.toLowerCase()包含(charSearch.toLowerCase()))
结果列表.添加(行)
}
filterListResult=resultList
你也可以发布适配器的代码吗?为什么不在列表中使用.filter{}
谓词?这比在我的git上覆盖getFilter()
可读性强得多,你可以在上次提交时对我的适配器进行什么样的操作searchview不起作用
override fun getFilter(): Filter {
return object : Filter() {
override fun performFiltering(constraint: CharSequence?): FilterResults {
val charSearch = constraint.toString()
if (charSearch.isEmpty())
filterListResult = productsList
else {
val resultList= ArrayList<ProductEntity>()
lists.size
for (row in lists){
if(row.productName.toLowerCase().contains(charSearch.toLowerCase()))
resultList.add(row)
}
filterListResult = resultList