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

问题描述 投票:-5回答:1

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

我已经尝试过这里类似问题的所有内容。

android kotlin
1个回答
0
投票

有两种简单的方法:

1)在片段本身内:

button.setOnClickListener {
        requireActivity().startActivity(
            Intent(requireActivity(), SecondActivity::class.java)
        )
    }

requireActivity()基本上是在告诉片段将父活动用作活动/上下文并从此处开始Intent。

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

interface FragmentCallback {
     fun startNextActivity()
}

将片段中的接口实例化为可为空的对象:

 private var fragmentCallback: FragmentCallback? = null

确保您在onAttatch()重写方法中告诉您有关接口的片段:

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

如您所见,老式的界面方式实现需要大量无用的代码行。使用requireActivity()方法是最简单,最快的。

© www.soinside.com 2019 - 2024. All rights reserved.