kotlin 使用按钮从片段打开Activity

i2byvkas  于 2023-04-07  发布在  Kotlin
关注(0)|答案(3)|浏览(162)

我是一个全新的android studio(Kotlin),我试图使用一个按钮从一个片段打开一个新的activity。如果这很简单,我很抱歉,我似乎无法弄清楚。
这是我到目前为止,它不做任何事情,当我运行模拟器,并点击按钮

class HomeFragment : Fragment(R.layout.fragment_home) {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val btntakepicture: Button? = view?.findViewById<Button>(R.id.btn_take_picture)
        btntakepicture?.setOnClickListener {
            requireActivity().run {
                startActivity(Intent(this, takepicture::class.java))
                finish()
            }
        }
    }
}
hmmo2u0o

hmmo2u0o1#

几乎没有理由在片段中覆盖onCreate。它是在视图创建之前调用的,因此在创建视图时没有按钮来设置监听器。您应该覆盖onViewCreated

xfb7svmp

xfb7svmp2#

要解决这个问题,您可以将代码移动到onViewCreated方法,该方法在视图创建后调用:

hyrbngr7

hyrbngr73#

重写onViewCreated方法如下:

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    
    val btntakepicture: Button = view.findViewById<Button>(R.id.btn_take_picture)
    btntakepicture.setOnClickListener {
        requireActivity().run {
            startActivity(Intent(this, takepicture::class.java))
            finish()
        }
    }
}

相关问题