Kotlin中的Android应用程序不能正确地扩大片段布局
我有个问题。
我写了一个Java Android应用程序并转换为Kotlin。 它在Java中工作正常,但现在当我运行应用程序,它给了我一个RuntimeError。 片段不能被夸大:
错误
FATAL EXCEPTION: main Process: com.jaielsoft.www.emergencyapp, PID: 10753 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jaielsoft.www.emergencyapp/de.htw_berlin.f4.ai.aa.activities.MainActivity}: android.view.InflateException: Binary XML file line #0: Error inflating class fragment ... Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class fragment .... Caused by: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter savedInstanceState ....
以下是涉及的类和布局文件:
MainActivity.kt:
package de.htw_berlin.f4.ai.aa.activities ... class MainActivity : FragmentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) if (savedInstanceState == null) this.setContentView(R.layout.mainlayout) } }
mainlayout.xml
MainFragment.kt
package de.htw_berlin.f4.ai.aa.fragments ... class MainFragment : Fragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle): View? { return inflater.inflate(R.layout.mainfragmentlayout, container, false) } }
mainfragmentlayout.xml
哪里有问题? 你能帮我么?
提前致谢
改变你的MainFragment
这一行
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle): View? {
至
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
请注意,我使用Bundle?
savedInstanceState
空作为savedInstanceState
Bundle?
而不是Bundle
。 在Kotlin的Java类中重写方法时,通常会遇到一些问题,有时候您不知道参数是否可以为null。 在这种情况下, onCreateView
可以(而且将)以savedInstanceState
为空来调用,所以你可以使它为空。