11

您好,我正在使用 Android Studio 和 Kotlin 语言制作应用程序,但无法让我的按钮打开新活动。我在我的 xml 文件中创建了按钮,但我找不到如何在 MainActivity.kt 中声明它以及如何创建将我带到新活动的 OnClicklistener 的 KOTLIN 语法。我在清单中也定义了新的活动,我想我只需要关于如何从 MainActivity.kt 实际切换到 secondActivity.kt 的语法帮助。任何帮助表示赞赏。

4

7 回答 7

20

您可以添加onclick如下事件侦听器。

 button1.setOnClickListener(object: View.OnClickListener {
    override fun onClick(view: View): Unit {
        // Handler code here.
        val intent = Intent(context, DestActivity::class.java);
        startActivity(intent);
    }
})

或者您可以使用简化形式

   button1.setOnClickListener {
    // Handler code here.
    val intent = Intent(context, DestActivity::class.java)
    startActivity(intent);
   }
于 2017-07-14T17:09:14.153 回答
6

布局 xml 文件中的按钮

        <Button
            android:id="@+id/btn_start_new_activity"
            android:text="New Activity"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

Kotlin Activity 文件中声明它

var btn_new_activity = findViewById(R.id.btn_start_new_activity) as Button

Onclicklistener设置为按钮,以在单击按钮时启动新活动

    btn_new_activity.setOnClickListener {
        val intent = Intent(context, NewActivity::class.java)
        startActivity(intent);
    }

参考:Android Studio 教程- https://www.youtube.com/watch?v=7AcIGyugR7M

于 2017-08-01T01:56:14.713 回答
3

我建议你使用 Anko - Kotlin 的扩展https://github.com/Kotlin/anko。它让您以最短的方式使用意图(以及更多其他东西)。在您的情况下,它将是:

button {
        onClick { startActivity<SecondActivity>() }
    }
于 2017-07-14T18:09:15.960 回答
2
// In your method `fun onCreate(savedInstanceState: Bundle?)` add this.

    your_btn_id.setOnClickListener{

                val intent = Intent(this, yourpagename::class.java)
                startActivity(intent)
            }

// till now if it doesn't work then, check if these two files are added or not,

    import android.content.Intent
    import kotlinx.android.synthetic.main.activity_otp.*

//希望它会起作用。

于 2020-01-09T07:42:18.587 回答
1

您可以创建一个通用方法来启动任何活动

  inline fun<reified T> launchActivity(){
    val intent = Intent(this, T::class.java)
    startActivity(intent)
}

并且可以像这样使用

 button1.setOnClickListener {
      launchActivity<AnyActivity>()
}

要获取有关 reified 的更多详细信息,请转到此处

于 2021-01-08T06:45:47.253 回答
0

您可以简单地在主要活动中声明您的按钮,如下所示:

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

并在 clicklistener 中启动新活动:

override fun onClick(p0: View?) {
        val intent = Intent(this, activity::class.java)
        startActivity(intent)
    }
于 2021-01-08T04:15:46.347 回答
0

我必须首先id 'kotlin-android-extensions'在 build.gradle 的插件中添加。之后在 OnCreate Button.setOnClickListener { }

于 2022-01-20T18:52:04.993 回答