如何在 Kotlin 中创建一个按钮来打开一个新的 activity (Android Studio)?
How to create a button in Kotlin that opens a new activity (Android Studio)?
您好,我正在使用 Android Studio 和 Kotlin 语言制作一个应用程序,但我无法让我的按钮打开一个新的 activity。我在 xml 文件中创建了按钮,但我找不到关于如何在 MainActivity.kt 中声明它的 KOTLIN 语法以及如何创建将我带到新的 activity 的 OnClicklistener ].我在清单中也定义了新的 activity,我想我只需要有关如何实际从 MainActivity.kt 切换到 secondActivity.kt 的语法帮助。感谢任何帮助。
您可以添加 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);
}
我建议您使用 Anko - Kotlin 的扩展 https://github.com/Kotlin/anko。
它让您以最短的方式使用意图(以及更多其他东西)。在你的情况下它将是:
button {
onClick { startActivity<SecondActivity>() }
}
布局中的按钮 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 设置为按钮,单击按钮时开始新的 activity
btn_new_activity.setOnClickListener {
val intent = Intent(context, NewActivity::class.java)
startActivity(intent);
}
参考:Android Studio Tutorial - https://www.youtube.com/watch?v=7AcIGyugR7M
// 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.*
// 希望它能起作用。
您可以简单地在主 activity 中声明您的按钮,如下所示:
val button = findViewById<Button>(R.id.button)
button.setOnClickListener(this);
并在 clicklistener 中启动新的 activity:
override fun onClick(p0: View?) {
val intent = Intent(this, activity::class.java)
startActivity(intent)
}
您可以创建一个通用方法来启动任何 Activity
inline fun<reified T> launchActivity(){
val intent = Intent(this, T::class.java)
startActivity(intent)
}
并且可以像
一样使用
button1.setOnClickListener {
launchActivity<AnyActivity>()
}
获取有关具体化的更多详细信息Go to Here
我必须先在 build.gradle 的插件中添加 id 'kotlin-android-extensions'
。
之后在 OnCreate
Button.setOnClickListener{
}
Kotlin
确保项目在 OnCreate
方法中。
编辑 XML
文件(res/layout 文件夹)并创建按钮:
<Button
android:id="@+id/button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Press me"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginStart="40dp"
android:layout_marginEnd="40dp"
android:layout_marginBottom="40dp"
/>
接下来是主线activityclass:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button: Button = findViewById(R.id.button)
button.setOnClickListener {
val intent = Intent(context, NewActivity::class.java)
startActivity(intent);
}
}
}
您好,我正在使用 Android Studio 和 Kotlin 语言制作一个应用程序,但我无法让我的按钮打开一个新的 activity。我在 xml 文件中创建了按钮,但我找不到关于如何在 MainActivity.kt 中声明它的 KOTLIN 语法以及如何创建将我带到新的 activity 的 OnClicklistener ].我在清单中也定义了新的 activity,我想我只需要有关如何实际从 MainActivity.kt 切换到 secondActivity.kt 的语法帮助。感谢任何帮助。
您可以添加 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);
}
我建议您使用 Anko - Kotlin 的扩展 https://github.com/Kotlin/anko。 它让您以最短的方式使用意图(以及更多其他东西)。在你的情况下它将是:
button {
onClick { startActivity<SecondActivity>() }
}
布局中的按钮 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 设置为按钮,单击按钮时开始新的 activity
btn_new_activity.setOnClickListener {
val intent = Intent(context, NewActivity::class.java)
startActivity(intent);
}
参考:Android Studio Tutorial - https://www.youtube.com/watch?v=7AcIGyugR7M
// 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.*
// 希望它能起作用。
您可以简单地在主 activity 中声明您的按钮,如下所示:
val button = findViewById<Button>(R.id.button)
button.setOnClickListener(this);
并在 clicklistener 中启动新的 activity:
override fun onClick(p0: View?) {
val intent = Intent(this, activity::class.java)
startActivity(intent)
}
您可以创建一个通用方法来启动任何 Activity
inline fun<reified T> launchActivity(){
val intent = Intent(this, T::class.java)
startActivity(intent)
}
并且可以像
一样使用 button1.setOnClickListener {
launchActivity<AnyActivity>()
}
获取有关具体化的更多详细信息Go to Here
我必须先在 build.gradle 的插件中添加 id 'kotlin-android-extensions'
。
之后在 OnCreate
Button.setOnClickListener{
}
Kotlin
确保项目在 OnCreate
方法中。
编辑 XML
文件(res/layout 文件夹)并创建按钮:
<Button
android:id="@+id/button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Press me"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginStart="40dp"
android:layout_marginEnd="40dp"
android:layout_marginBottom="40dp"
/>
接下来是主线activityclass:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button: Button = findViewById(R.id.button)
button.setOnClickListener {
val intent = Intent(context, NewActivity::class.java)
startActivity(intent);
}
}
}