how to get item value from ListView setOnItemClickListener?

543 Views Asked by At

Listview setOnItemClickListener in getItemAtPosition give item position not give value. wheb click on Listview item then give Error : java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String. I will try to after .toString it's give integer value. so, How to get Item value Listview item.

Code

listView.setOnItemClickListener { parent, view, position, id ->
     val query : String = parent.getItemAtPosition(position) as String
     searchView?.setQuery(query,true)
}

Create Custom ListView Using BaseAdapter.

SearchAdapter.kt

class SearchAdapter(val searchList : ArrayList<Search>, val context: Context) : BaseAdapter() {
        override fun getCount(): Int {
            return searchList.size
        }
    
        override fun getItem(position: Int): Any {
            return position
        }
    
        override fun getItemId(position: Int): Long {
            return position.toLong()
        }
    
        override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
    
            val convertView = LayoutInflater.from(context).inflate(R.layout.textview_list,parent,false)
            val image = convertView.findViewById<ImageView>(R.id.imageViewHistory)
            val textView = convertView.findViewById<TextView>(R.id.text_list_view)
            val imageClear = convertView.findViewById<ImageView>(R.id.imageViewClear)
            val search = searchList.get(position)
            image.setImageResource(R.drawable.ic_baseline_search_24)
            textView.text = search.search
    
            return convertView
        }
    }
1

There are 1 best solutions below

0
farshad rezaei On

in SearchAdapter :

 override fun getItem(position: Int): Any {
      return searchList.get(position)
 }

in setOnItemClickListener :

 val search = parent.getItemAtPosition(position) as Search
 val query = search.query