使用按钮从片段打开一个活动



我是全新的android工作室(kotlin),我试图使用按钮从片段打开一个新的活动。如果这很简单,我很抱歉,我只是似乎想不明白。

这就是我到目前为止所做的,当我运行模拟器并单击按钮

时,它不做任何事情
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()
}
}
}
}

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

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

重写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()
}
}
}

最新更新