как получить значение элемента из ListView setOnItemClickListener?

#android #kotlin #listview #arraylist #baseadapter

Вопрос:

Listview setOnItemClickListener в getItemAtPosition задает позицию элемента, а не значение. wheb нажимает на элемент списка, затем выдает ошибку : java.lang.Исключение ClassCastException: java.lang.Целое число не может быть приведено к java.lang.Строка. Я постараюсь после .toString дать целочисленное значение. итак, как получить элемент списка значений элемента.

Код

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

Создайте Пользовательский Список С Помощью Базового Адаптера.

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. Как Search это выглядит?

2. попробуйте этот код. val query = searchList.get(position)

Ответ №1:

в поиске адаптера :

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

в setOnItemClickListener :

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