Cómo usar fragments con kotlin

No puedo encontrar cómo usar fragments usando kotlin. Aparece un error en el método onCreateView, por favor, ayúdenme.

ListaFragment.kt:

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

fragment_list.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 listFragment: ListaFragment? = null override fun onCreate(savedState: Bundle?) { super.onCreate(savedState) //cual es la diferencia con savedInstanceState setContentView(R.layout.activity_main) listFragment = Fragment.instantiate(this@MainActivity, ListaFragment::class.java!!.getName()) as ListaFragment fragmentManager.beginTransaction().replace(R.id.flLista, listFragment).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> 

No tengo errores de syntax, la aplicación se detiene cuando abro el fragment

error:

 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 es anulable, pero lo has declarado como Bundle : ¿debería ser Bundle? .

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

También tuve este problema y me volvió loco hasta que lo encontré.

En onCreateView , necesitas hacer que savedInstanceState anular de esta forma:

savedInstanceState: Bundle? (agregue un signo de interrogación para indicar que es anulable)

  • La diferencia entre !! y? en Kotlin
  • OnClick y TextView en Android Studio 3
  • Error de configuration automática del complemento kotlin-gradle
  • Android Studio 3 no puede build fragments de kotlin
  • Parsing xml kotlin android
  • Hacer clic en una vista de text para cambiar el fragment
  • extracción de resources de string para kotlin en android studio?
  • Las classs de Kotlin que contienen android-extensiones no se basan en construcciones consecuentes
  • Imposible get datos de la database sqlite
  • Kotlin Objetos de carga demorada
  • Problema de Kotlin Gradle