Android 在Kotlin中,如何在打开活动的片段中创建按钮?

Android 在Kotlin中,如何在打开活动的片段中创建按钮?,android,kotlin,Android,Kotlin,在Kotlin中,如何在片段中创建一个按钮来打开活动及其相应的kt文件 我在这里尝试了类似问题的所有方法。有两种简单的方法: 1) 在片段本身内部: button.setOnClickListener { requireActivity().startActivity( Intent(requireActivity(), SecondActivity::class.java) ) } 其中,通过requireActivity()您

在Kotlin中,如何在片段中创建一个按钮来打开活动及其相应的kt文件


我在这里尝试了类似问题的所有方法。

有两种简单的方法:

1) 在片段本身内部:

button.setOnClickListener {
        requireActivity().startActivity(
            Intent(requireActivity(), SecondActivity::class.java)
        )
    }
其中,通过
requireActivity()
您基本上是告诉您的片段使用父活动作为活动/上下文,并从那里开始一个意图

2) 使用对活动的回调。 定义下一个接口:

interface FragmentCallback {
     fun startNextActivity()
}
将片段中的接口实例化为可空对象:

 private var fragmentCallback: FragmentCallback? = null
确保在OnAtatch()重写方法中告诉片段有关接口的信息:

override fun onAttach(context: Context) {
    super.onAttach(context)
    try {
        if (context is FragmentCallback)
            fragmentCallback = context
    } catch (e: Exception) {}
}
实现您的按钮功能:

button.setOnClickListener {
          fragmentCallback.startNextActivity()
    }
然后在主要活动中实现接口:

class MainActivity : AppCompatActivity(), FragmentCallback
您的活动将需要接口的覆盖方法。实施该方法:

override fun startNextActivity() {
    startActivity(Intent(this, SecondActivity::class.java)
}

正如您所看到的,旧的接口实现方式需要大量无用的代码行。使用
requirectivity()
方法是最简单、最快的

如果您需要一些帮助来显示您的代码,请发布您尝试过的代码以及任何相关的错误消息或日志。请通过您的问题来显示您的尝试,并准确地解释它们是如何不起作用的。发布您的代码。您到底尝试了什么?