我的阵列适配器过滤器部分出现错误。当我尝试在自动完成文本视图应用程序崩溃中输入值并显示以下错误时,一切正常。
java.lang.NullPointerException:null 不能转换为非 null 类型 java.util.ArrayList
以下是我的代码
class ProductSearchAdapter(
context: Context,
private var list: ArrayList<SaleFilterListModel>
) : ArrayAdapter<SaleFilterListModel>(context, 0, list){
@SuppressLint("ViewHolder")
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
val binding = ProductSearchListBinding.inflate(LayoutInflater.from(context), parent, false)
val item = list[position]
binding.searchProductName.text = item.productName
binding.searchProductRate.text = item.saleAmount
return binding.root
}
override fun getFilter(): Filter {
return productFilter
}
private val productFilter: Filter = object : Filter() {
override fun performFiltering(constraint: CharSequence): FilterResults {
val results = FilterResults()
val suggestions = ArrayList<SaleFilterListModel>()
if (constraint.isEmpty()) {
suggestions.addAll(list)
} else {
val filterPattern = constraint.toString().lowercase().trim()
for (item in list) {
if (item.productName.lowercase().contains(filterPattern)) {
suggestions.add(item)
}
}
}
results.values = suggestions
results.count = suggestions.size
return results
}
override fun publishResults(constraint: CharSequence?, results: FilterResults?) {
list = results?.values as ArrayList<SaleFilterListModel>
notifyDataSetChanged()
}
override fun convertResultToString(resultValue: Any?): CharSequence {
return (resultValue as SaleFilterListModel).productName
}
}
}