android-studio - setOnClickListener 没有显示 Toast 或做 Intent

这是在 Kotlin 中,无论我尝试什么,它似乎都不起作用,它只是一个带有点击侦听器的按钮。它的功能是带我去另一个活动,我尝试了敬酒但也没有显示。我尝试不使用该功能,也没有工作。我们可以将此方法与文本视图一起使用吗?我是 Kotlin 的新手,所以对我来说很容易......

这是代码

val startButton = binding.loginButton

startButton.setOnClickListener {
    fun crtUser() {
        Toast.makeText(this, "It's Working!", Toast.LENGTH_LONG).show()

        val intent = Intent(this@LoginActivity, SignupActivity::class.java)
        startActivity(intent)
    }
        crtUser()
    }
}

我还在 Intent 之后使用了 finish(),它崩溃了

回答1

请不要使用这种语法,它不是无效的,但是改进它对您和其他开发人员来说会更好,以便更快、更容易地理解正在发生的事情:)。从点击事件触发函数如下:

fun onCreateOrOtherMethod() {
    binding.button.setOnClickListener {
        createUser()
    }
}

然后您可以将 createUser() 作为当前类的内部方法:

private fun createUser() {
        Toast.makeText(this, "It's Working!", Toast.LENGTH_LONG).show()
        val intent = Intent(this@LoginActivity, SignupActivity::class.java)
        startActivity(intent)
}

小提示:不要缩写方法名称,如果需要,您可以使用长名称,只要它可以改善代码的语义。

如果它崩溃,请附上异常堆栈跟踪:D

回答2

在我改变这个之后它现在正在工作

setContentView(R.layout.login_activity)

对此

setContentView(binding.root)

任何想法为什么?

相似文章

随机推荐

最新文章