如何从 ListView setOnItemClickListener 获取项目值?
Posted
技术标签:
【中文标题】如何从 ListView setOnItemClickListener 获取项目值?【英文标题】:how to get item value from ListView setOnItemClickListener? 【发布时间】:2021-11-10 21:15:46 【问题描述】:getItemAtPosition 中的 Listview setOnItemClickListener 给出项目位置而不给出值。 wheb 单击 Listview 项,然后给出错误:java.lang.ClassCastException:java.lang.Integer 无法转换为 java.lang.String。我将尝试在 .toString 之后给出整数值。那么,如何获取 Item 值 Listview 项。
代码
listView.setOnItemClickListener parent, view, position, id ->
val query : String = parent.getItemAtPosition(position) as String
searchView?.setQuery(query,true)
使用 BaseAdapter 创建自定义 ListView。
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
【问题讨论】:
Search
长什么样子?
试试这个代码。 val query = searchList.get(position)
【参考方案1】:
在 SearchAdapter 中:
override fun getItem(position: Int): Any
return searchList.get(position)
在 setOnItemClickListener 中:
val search = parent.getItemAtPosition(position) as Search
val query = search.query
【讨论】:
以上是关于如何从 ListView setOnItemClickListener 获取项目值?的主要内容,如果未能解决你的问题,请参考以下文章