2017-04-17 6 views
0

Ich habe die folgende Kotlin-Funktion von einem Android-Projekt. Ich versuche entweder ein Movie oder ein TvShow 'Fragment' zurückzugeben, die beide von der Basis-android 'Fragment'-Klasse stammen. Dieser Code funktionierte, als es Java-Code war, aber nach Kotlin konvertiert wurde - es funktioniert nicht mehr. Der Fehler, den ich erhalte, ist ein Typenkonflikt auf dem MovieFragment, weil es den Typ "MoviesFragment" und nicht "Fragment?"Kotlin: Kann keinen abgeleiteten Typ zurückgeben


override fun getItem(position: Int): Fragment? { 
     when (position) { 
      0 -> { 
       val moviesFragment: MoviesFragment = MoviesFragment() 
       return moviesFragment 
      } 
      1 -> { 
       val tvShowFragment: TvShowFragment = TvShowFragment() 
       return tvShowFragment 
      } 
      else -> { 
       return null 
      } 
     } 
    } 


Vielen Dank im Voraus !!

Antwort

1

Sieht in Ordnung aus, versuchen Sie, Importe von Fragment in beiden Klassen zu vergleichen. Es sollte in allen Unterklassen gleich sein, zum Beispiel import android.app.Fragment oder import android.support.v4.app.Fragment

Verwandte Themen