【问题标题】:Kotlin setOnclickListener button is not workingKotlin setOnclickListener 按钮不起作用
【发布时间】:2017-12-20 18:03:51
【问题描述】:

大家好,点击按钮有问题

    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)
            }
        }

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

【问题讨论】:

    标签: android-studio kotlin


    【解决方案1】:

    您不需要定义函数声明 (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()
        }
    

    【讨论】:

    • 它在 MainActivity 上完美运行,但在 createUser 程序上以某种方式停止..
    【解决方案2】:

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

    您的原始代码:

    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)
    }
    

    【讨论】:

    • 我都尝试了,但是程序被停止了但是你和@jorgesys 回答在 MainActivity 部分工作
    猜你喜欢
    • 2014-07-15
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多