如何使用kotlin使用片段

我无法找到如何使用kotlin使用片段。 我在onCreateView方法中遇到错误,请帮助我。

ListaFragment.kt:

class ListaFragment : Fragment() { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle): View? { val view = inflater.inflate(R.layout.fragment_lista, container, false) return view } } 

fragment_lista.xml:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAlignment="center" android:text="Hello"/> </LinearLayout> 

MainActivity.kt:

 class MainActivity : AppCompatActivity() { private var listaFragment: ListaFragment? = null override fun onCreate(savedState: Bundle?) { super.onCreate(savedState) //cual es la diferencia con savedInstanceState setContentView(R.layout.activity_main) listaFragment = Fragment.instantiate(this@MainActivity, ListaFragment::class.java!!.getName()) as ListaFragment fragmentManager.beginTransaction().replace(R.id.flLista, listaFragment).commit() } } 

activity_main.xml中:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.harol.appfinalandroid.MainActivity"> <FrameLayout android:id="@+id/flLista" android:layout_width="match_parent" android:layout_height="match_parent"></FrameLayout> </LinearLayout> 

我没有语法错误,应用程序停止当我打开片段

错误:

 Caused by: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter savedInstanceState at com.example.harol.appfinalandroid.ListaFragment.onCreateView(ListaFragment.kt:0) 

savedInstanceState是可以为空的,但是你把它声明为Bundle – 它应该是Bundle?

 override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { 

我也有过这个问题,直到找到它才使我疯狂。

onCreateView ,您需要像这样使savedInstanceState空:

savedInstanceState: Bundle? (添加一个问号来表明它可以为空)