android listview search filter custom adapter kotlin
inner class PoiAdapter(context: Context, @LayoutRes private val layoutResource: Int, private val allPois: List<PoiDao>):
ArrayAdapter<PoiDao>(context, layoutResource, allPois),
Filterable {
private var mPois: List<PoiDao> = allPois
override fun getCount(): Int {
return mPois.size
}
override fun getItem(p0: Int): PoiDao? {
return mPois.get(p0)
}
override fun getItemId(p0: Int): Long {
// Or just return p0
return mPois.get(p0).id.toLong()
}
override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
val view: TextView = convertView as TextView? ?: LayoutInflater.from(context).inflate(layoutResource, parent, false) as TextView
view.text = "${mPois[position].name} ${mPois[position].city} (${mPois[position].category_name})"
return view
}
override fun getFilter(): Filter {
// See next section
}
}