Kotlin:片段崩溃应用程序上的 setOnClickListener

Kotlin: setOnClickListener on Fragment Crashes app

我有一个带有按钮的 MainActivity,该按钮调用带有 FragmentOneActivityfragment_one.xml 的 tabbedActivity 。我已将我的按钮放在 fragment_one.xml 中并在 FragmentOneActivity 上执行 Toast。这是我的代码:

class Anct3bActivity : Fragment() {
override fun onCreateView(
    inflater: LayoutInflater,
    container: ViewGroup?,
    savedInstanceState: Bundle?
): View {
    val v : View = inflater.inflate(R.layout.fragment_anct3b, container, false)

    calculateNutCountButton.setOnClickListener {
        Toast.makeText(
            activity,"Success.",
            Toast.LENGTH_SHORT).show()
    }
    return v
}

}

我的应用程序启动正常,但是当单击调用 tabbedActivity 的按钮时,我的应用程序崩溃了。但是,当我从 FragmentOneActivity 中删除 calculateButton.setOnClickListener 时,tabbedActivity 工作正常。

我也试过将 calculateButton.setOnClickListener 放在 tabbedActivity 上,但它仍然崩溃。

这是我第一次尝试选项卡式活动,但我不能让别人使用 setOnClickLIstener

请引导我完成此操作。谢谢!

Logcat:

在 FragmentOneActivity 上:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference

在 tabbedActivity 上

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.demicode.ccdofieldkit/com.a.fr.meActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference

在 onViewCreated 和 onCreateView 中设置您的点击侦听器,您在视图可以设置之前调用 onClick 侦听器。

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    calculateNutCountButton.setOnClickListener {
        Toast.makeText(
            activity,"Success.",
            Toast.LENGTH_SHORT).show()
    }
}