Kotlin:无法返回派生类型

时间:2017-04-17 22:20:56

标签: android kotlin

我有一个Android项目的以下kotlin函数。我试图返回一个电影或TvShow'Fragment',它们都来自基础android'Fragment'类。这段代码在java代码中有效,但一旦转换为Kotlin - 它就不再有用了。我得到的错误是MovieFragment上的类型不匹配,因为它是'MoviesFragment'类型而不是'Fragment?'。

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 个答案:

答案 0 :(得分:2)

看起来没问题,尝试在两个类中匹配Fragment的导入。 它应该在所有子类中都相同,例如import android.app.Fragmentimport android.support.v4.app.Fragment