Solution 1 :
you should promisss the position is in 0..3 ,otherwise throw an IllArgumentException to tell you the wrong
Solution 2 :
when you remove the ?
sign, and return getItem(position)
in stead of null, it will fix.
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") }
}
}
Problem :
I am receiving error which is coming from Fragment.
I have changed android.support.v4.app.Fragment to androidx.fragment.app.Fragment and have gotten it down to this one error. Any help would be greatly appreciated.
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
}
}
How can we fix error there. I believe it has to do with the import, but ı didn’t fix.
Comments
Comment posted by Silence
the code:else->{throw IllegalStateException(“$position is illegal”)}
Comment posted by al3c
doesn’t this go in an infinite recursion if position is not 0, 1, 2 or 3? In case it never happens, then just throw an exception.
Comment posted by al3c
“In case it never happens, then just throw an exception”