Kotlin: Метод setOnItemClickListener

Метод  setOnItemClickListener  используется для установки обработчика кликов на элементы списка (например, в ListView или RecyclerView). Этот метод позволяет вам реагировать на события, когда пользователь нажимает на элемент списка.

Пример использования setOnItemClickListener в ListView


val listView = findViewById<ListView>(R.id.list_view)

// Устанавливаем адаптер для ListView
val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, arrayOf("Item 1", "Item 2", "Item 3"))
listView.adapter = adapter

// Устанавливаем обработчик кликов
listView.setOnItemClickListener { parent, view, position, id ->
    // Здесь вы можете обработать клик на элемент списка
    val clickedItem = parent.getItemAtPosition(position) as String
    Toast.makeText(this, "Clicked: $clickedItem", Toast.LENGTH_SHORT).show()
}

Пример использования setOnItemClickListener в RecyclerView


В RecyclerView используется RecyclerView.Adapter, и вы можете установить обработчик кликов в методе onCreateViewHolder или onBindViewHolder.
class MyAdapter(private val items: List<String>) : RecyclerView.Adapter<MyAdapter.ViewHolder>() {

    class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        val textView: TextView = itemView.findViewById(R.id.text_view)
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val view = LayoutInflater.from(parent.context).inflate(R.layout.item_layout, parent, false)
        return ViewHolder(view)
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        holder.textView.text = items[position]

        // Устанавливаем обработчик кликов
        holder.itemView.setOnClickListener {
            val clickedItem = items[position]
            Toast.makeText(holder.itemView.context, "Clicked: $clickedItem", Toast.LENGTH_SHORT).show()
        }
    }

    override fun getItemCount(): Int {
        return items.size
    }
}

Заключение


  • В ListView вы можете использовать setOnItemClickListener для обработки кликов на элементы списка.
  • В RecyclerView вы можете установить обработчик кликов в методе onBindViewHolder для каждого элемента списка.

Эти методы позволяют вам реагировать на события кликов и выполнять необходимые действия.

Автор:  12.02.2026 11:46:40 am