'getItem'的返回类型不是被重写成员的返回类型的子类型'@NonNull public abstract fun getItem(p0: Int)'



我收到来自Fragment的错误。

我已经将android.support.v4.app.Fragment更改为androidx.Fragment.app.Fragment,并将其归结为一个错误。如有任何帮助,我们将不胜感激。

import android.content.Context
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentPagerAdapter
class MyAdapter(private val myContext: Context, fm: FragmentManager, internal var totalTabs: 
Int) : FragmentPagerAdapter(fm) {
// this is for fragment tabs
override fun getItem(position: Int): Fragment? {
when (position) {
0 -> {
//  val homeFragment: HomeFragment = HomeFragment()
return GenelFragment()
}
1 -> {
return GovdeFragment()
}
2 -> {
// val movieFragment = MovieFragment()
return InisFragment()
}
3 -> {
// val movieFragment = MovieFragment()
return UcusFragment()
else -> return  null
}
}

我们怎样才能纠正那个里的错误。我相信这与进口有关,但ı没有解决。

您应该保证位置在0..3,否则抛出IllArgumentException来告诉您错误的

当您删除?符号,并返回getItem(position)而不是null时,它将修复。

import android.content.Context
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentPagerAdapter
class MyAdapter(private val myContext: Context, fm: FragmentManager, internal 
var totalTabs: 
Int) : FragmentPagerAdapter(fm) {
// this is for fragment tabs
override fun getItem(position: Int): Fragment {
when (position) {
0 -> {
//  val homeFragment: HomeFragment = HomeFragment()
return GenelFragment()
}
1 -> {
return GovdeFragment()
}
2 -> {
// val movieFragment = MovieFragment()
return InisFragment()
}
3 -> {
// val movieFragment = MovieFragment()
return UcusFragment()
else->{throw IllegalStateException("$position is illegal") } 
}
}

最新更新