Kotlin setOnClickListener用于ListView [英] Kotlin setOnClickListener for a ListView

查看:326
本文介绍了Kotlin setOnClickListener用于ListView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下代码:

class BookListActivity : AppCompatActivity()
{

    var array = arrayOf("Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 6", "Item 7", "Item 8", "Item 9", "Item 10", "Item 11")

    override fun onCreate(savedInstanceState: Bundle?)
    {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.book_list)

        val adapter = ArrayAdapter(this, R.layout.book_list_item, R.id.book_title, array)
        val listView : ListView = findViewById(R.id.book_list)
        listView.adapter = adapter    
    }
}

我需要为listView上的每个元素添加一个点击侦听器.

I need to add a click listener for each element on the listView.

我尝试了以下操作,但不起作用:

I've tried the following but doesn't work:

listView.setOnItemClickListener
{
    val intent = Intent(this, BookDetailActivity::class.java)
    startActivity(intent)
}

我还需要知道我单击了什么ListView元素.我该怎么办?

Also I need to know what ListView element I've clicked. How can I do this?

推荐答案

您必须处理您的听众应该看起来像这样:

Your listener should look like this:

listView.setOnItemClickListener { parent, view, position, id -> 
    val element = adapter.getItemAtPosition(position) // The item that was clicked
    val intent = Intent(this, BookDetailActivity::class.java)
    startActivity(intent)
}

这篇关于Kotlin setOnClickListener用于ListView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆