如何在Kotlin中实现setOnClickListener?

我想知道,我们如何在Android开发Kotlin中设置基本onClickListener。

假设你有textView点击

text_view.text = "Hello Kotlin"; text_view.setOnClickListener { val intent = Intent(this@MainActivity, SecondActivity::class.java) intent.putExtra("key", "Kotlin") startActivity(intent) } 

使用下面的代码

 val textview = findViewById<TextView>(R.id.textview) textview.setOnClickListener(clickListener) val button = findViewById<Button>(R.id.button) button.setOnClickListener(clickListener) 

clickListener代码。

 val clickListener = View.OnClickListener {view -> when (view.getId()) { R.id.textview -> firstFun() R.id.button -> secondFun() } } 

这里是一个关于如何在Kotlin中使用onClickListener的例子

 button1.setOnClickListener(object : View.OnClickListener{ override fun onClick(v: View?) { //Your code here } 

你可以像kotlin中的onclickListener一样使用

 val fab = findViewById(R.id.fab) as FloatingActionButton fab.setOnClickListener { ... } 

首先,您必须获取对视图的引用(比如Button,TextView等),并使用setOnClickListener()方法将OnClickListener设置为引用

 // get reference to button val btn_click_me = findViewById(R.id.btn_click_me) as Button // set on-click listener btn_click_me.setOnClickListener { Toast.makeText(this@MainActivity, "You clicked me.", Toast.LENGTH_SHORT).show() } 

请参阅Kotlin SetOnClickListener示例,了解完整的Kotlin Android示例,其中按钮存在于活动中,并且OnclickListener应用于该按钮。 当你点击按钮时,SetOnClickListener块内的代码被执行。

使用此代码在Kotlin中添加onClickListener

 val button : Button = getView()?.findViewById<Button>(R.id.testButton) as Button button.setOnClickListener {view -> Toast.makeText(context, "Write your message here", Toast.LENGTH_LONG).show() } } 

要使用多个ID:

 textview1.setOnClickListener(clickListener) textview2.setOnClickListener(clickListener) 

创建匿名类:

  private val clickListener: View.OnClickListener = View.OnClickListener { view -> when (view.id) { R.id.textview1-> { Toast.makeText(this, "Clicked 1", Toast.LENGTH_SHORT).show() } R.id.iv_circle_nighttime -> { Toast.makeText(this, "Clicked 2", Toast.LENGTH_SHORT).show() } } } 

首先找到这个按钮,为了防止从View你可以使用<>如下:

val button = findViewById<Button>(R.id.button);

一旦你有一个Button的实例,你现在可以附加点击监听器,如下所示:

button.setOnClickListener {
// You code here }