移动到另一个片段后,Snackbar 操作获取空指针

Snackbar action gets null pointer after moving to another fragment

片段 A 调用带有操作按钮的快餐栏。当用户单击操作时,它会启动新的 activity 并带有意图。 它工作正常。但是,如果用户在 snackbar 不断出现时移动到 Fragment B,然后按下操作按钮,现在它不会开始新的 activity 但会崩溃。

如何防止在这种情况下崩溃并使 Intent 可行? 这是我的代码。 片段 A

binding.theButton.setOnClickListener {

    val proSnack = Snackbar.make(view!!, activity!!.getString(R.string.this_is_pro_function), Snackbar.LENGTH_LONG)
    proSnack.setAction(R.string.check, View.OnClickListener {
        activity!!.startActivity(Intent(activity, ProActivity::class.java))
    })
    proSnack.show()

    }
}

binding.backText.setOnClickListener{
    activity?.supportFragmentManager?.popBackStackImmediate()
}
 activity!!.startActivity(Intent(activity, ProActivity::class.java))

问题就在这里。您可以检查activity。它是空的。使用 !! 是一种不好的做法。你可以改成

activity?.startActivity(Intent(activity, ProActivity::class.java))

但是 activity 为空。它不会打开一个新的 activity