从片段开始 activity(应用程序未启动)
start an activity from a fragment (app is not starting)
我对 Kotlin 还是个新手...我有一个抽屉,它在片段之间变化。
在主页片段中我想要一个按钮,它启动一个 activity。我的片段 class 看起来像这样:
private const val ARG_PARAM1 = "param1"
private const val ARG_PARAM2 = "param2"
class Home : Fragment() {
private var param1: String? = null
private var param2: String? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let {
param1 = it.getString(ARG_PARAM1)
param2 = it.getString(ARG_PARAM2)
}
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
imageButton1.setOnClickListener {
/* Start Activity */
val i = Intent(activity, strooptest::class.java)
startActivity(i)
}
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_home, container, false)
}
companion object {
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment Home.
*/
// TODO: Rename and change types and number of parameters
@JvmStatic
fun newInstance(param1: String, param2: String) =
Home().apply {
arguments = Bundle().apply {
putString(ARG_PARAM1, param1)
putString(ARG_PARAM2, param2)
}
}
}
}
我的应用无法启动,我不确定我做错了什么。我也没有任何错误或异常!
如果这是 HomeFragment
的所有代码,那么您似乎缺少 imageButton1
?
的声明
我建议阅读如何创建片段以获得更好的理解。令人恼火的是,官方 Android 文档似乎缺少创建片段的功能,但 this article 似乎有一个很好的代码示例,尤其是 onCreateView
和 onViewCreated
.
我对 Kotlin 还是个新手...我有一个抽屉,它在片段之间变化。
在主页片段中我想要一个按钮,它启动一个 activity。我的片段 class 看起来像这样:
private const val ARG_PARAM1 = "param1"
private const val ARG_PARAM2 = "param2"
class Home : Fragment() {
private var param1: String? = null
private var param2: String? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let {
param1 = it.getString(ARG_PARAM1)
param2 = it.getString(ARG_PARAM2)
}
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
imageButton1.setOnClickListener {
/* Start Activity */
val i = Intent(activity, strooptest::class.java)
startActivity(i)
}
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_home, container, false)
}
companion object {
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment Home.
*/
// TODO: Rename and change types and number of parameters
@JvmStatic
fun newInstance(param1: String, param2: String) =
Home().apply {
arguments = Bundle().apply {
putString(ARG_PARAM1, param1)
putString(ARG_PARAM2, param2)
}
}
}
}
我的应用无法启动,我不确定我做错了什么。我也没有任何错误或异常!
如果这是 HomeFragment
的所有代码,那么您似乎缺少 imageButton1
?
我建议阅读如何创建片段以获得更好的理解。令人恼火的是,官方 Android 文档似乎缺少创建片段的功能,但 this article 似乎有一个很好的代码示例,尤其是 onCreateView
和 onViewCreated
.