Kotlin setOnclickListener按钮不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin setOnclickListener按钮不起作用相关的知识,希望对你有一定的参考价值。

你好我们点击按钮有问题

    fun mainPage(view: View) {
            val intent = Intent(applicationContext, MainActivity::class.java)
            intent.putExtra("input", userText.text.toString())
            startActivity(intent)
        }

       //second button started in here
         singupButton.setOnClickListener {
            fun crtUser (view: View) {
                val intent = Intent(applicationContext,createUser::class.java)
                startActivity(intent)
            }
        }

但我的按钮不起作用。我的问题在哪里?

答案

你不需要定义函数声明(fun),试试这个:

singupButton.setOnClickListener {view ->
                val intent = Intent(applicationContext,createUser::class.java)
                startActivity(intent)
 }

要不就

singupButton.setOnClickListener {
                  val intent = Intent(applicationContext,createUser::class.java)
                  startActivity(intent)
}

这是一个基本的样本

val myButton = findViewById<Button>(R.id.myButton) as Button
    //set listener
    myButton.setOnClickListener {
        //Action perform when the user clicks on the button.
        Toast.makeText(this@MainActivity, "You clicked me.", Toast.LENGTH_SHORT).show()
    }
另一答案

你的问题是,你在点击监听器中定义了一个函数,你没有调用它。

你原来的代码:

singupButton.setOnClickListener {
     fun crtUser (view: View) {
         val intent = Intent(applicationContext,createUser::class.java)
         startActivity(intent)
     }
}

你应该调用这个函数:

singupButton.setOnClickListener { view ->
     fun crtUser (view: View) {
         val intent = Intent(applicationContext,createUser::class.java)
         startActivity(intent)
     }
     crtUser(view)
}

或者不要定义这个函数,只需调用它:

singupButton.setOnClickListener {
    val intent = Intent(applicationContext,createUser::class.java)
    startActivity(intent)
}

以上是关于Kotlin setOnclickListener按钮不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Android Kotlin:在 Fragment 下带有 Intent 的 setOnClickListener

kotlin的简约lambda

kotlin中匿名内部类的写法

kotlin中匿名内部类的写法

kotlin TextViewEditText的相关监听的常用使用

kotlin TextViewEditText的相关监听的常用使用