2017-04-17 80 views
0

我從android項目中獲得以下kotlin函數。我試圖返回一個Movie或TvShow'Fragment',它們都是從基本的android'Fragment'類派生的。這段代碼當它是java代碼時工作,但一旦轉換爲Kotlin - 它不再有效。我得到的錯誤是MovieFragment類型不匹配,因爲它是類型'MoviesFragment'而不是'Fragment?'。Kotlin:無法返回派生類型


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 
      } 
     } 
    } 


在此先感謝!

回答

1

看起來沒問題,試着在兩個類中匹配Fragment的導入。 它應該在所有小類中相同,例如import android.app.Fragmentimport android.support.v4.app.Fragment