如何在Kotlin中创建按钮以打开新Activity(Android Studio)?

bqujaahr  于 11个月前  发布在  Android
关注(0)|答案(9)|浏览(132)

您好,我正在使用Android Studio和Kotlin语言制作一个应用程序,但在让我的按钮打开新Activity时遇到了问题。我在xml文件中创建了按钮,但找不到KOTLIN语法,无法在MainActivity.kt中声明该按钮,也无法创建OnClicklistener以将我带到新Activity。我在清单中也定义了新Activity,我想我只是需要语法帮助关于如何从MainActivity.kt切换到secondActivity.kt。

bt1cpqcv

bt1cpqcv1#

您可以像下面这样添加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);
   }

jvidinwx

jvidinwx2#

布局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

9jyewag0

9jyewag03#

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

button {
        onClick { startActivity<SecondActivity>() }
    }

字符串

6l7fqoea

6l7fqoea4#

// 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.*

字符串
//希望它能工作。😊

tzxcd3kk

tzxcd3kk5#

Kotlin酒店
确保项目在OnCreate方法中。编辑XML文件(res/layout 文件夹)和create按钮:

<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"
    />

字符串
接下来是主要活动类:

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

xmakbtuz

xmakbtuz6#

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

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

字符串
并可用于像

button1.setOnClickListener {
      launchActivity<AnyActivity>()
}


获取更多关于reified Go to Here的信息

fd3cxomn

fd3cxomn7#

你可以简单地在主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)
    }

inn6fuwd

inn6fuwd8#

我不得不在build. gradle中的插件内部添加第一个id 'kotlin-android-extensions'。之后在OnCreate Button. setOnClickButton { }

ffscu2ro

ffscu2ro9#

我尝试了所有的方法,但没有一个工作,我不认为我做错了,虽然因为我的兄弟是一个专业的编码器,他说我做的工作是正确的。

相关问题