[英]How can I call an Activity from Fragment.kt file?
class ProfileFragment : Fragment() {
private lateinit var tvhelpcenter: TextView
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_profile, container, false)
/* val view = inflater?.inflate(
R.layout.fragment_home,
container, false
)*/
/*val tv_help_center: TextView? = view?.findViewById(R.id.tv_help_center)
tv_help_center!!.setOnClickListener {
requireActivity().run {
startActivity(Intent(this, HelpCenterActivity::class.java))
finish()
}
}*/
}
}
You should use activity!!
您应该使用
activity!!
instead of this here. 而不是
这个在这里。
For Fragment use -> activity!! 对于片段使用-> 活动!
activity!!.startActivity(Intent(activity!!, HelpCenterActivity::class.java))
finish()
2nd Approach 第二种方法
(activity as MainActivityName)?.let{
val intent = Intent (it, HelpCenterActivity::class.java)
it.startActivity(intent)
finish()
}
let
->takes the object it is invoked upon as the parameter and returns the result of the lambda expression.let
>将调用它的对象作为参数,并返回lambda表达式的结果。
it
->keyword contains the copy of the property insidelet
.it
> keyword包含let
内属性的副本。
Call the parent Activity: 调用父活动:
val intent = Intent (getActivity(), Main::class.java) getActivity().startActivity(intent) val intent = Intent(getActivity(),Main :: class.java)getActivity()。startActivity(intent)
activity?.let{ val intent = Intent (it, Main::class.java) it.startActivity(intent) } activity?.let {val intent = Intent(it,Main :: class.java)it.startActivity(intent)}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.