假设我设置了getCount()= 3,如何指定要为第三个项检索哪个片段和页面标题?
class ViewPagerAdapter(fm: FragmentManager) : FragmentPagerAdapter(fm) {
override fun getCount() = 3
override fun getItem(i: Int) = if (i == 0) KotlinListFragment() else if (i == 1) JavaListFragment() else (i == 2) AndroidFragment()
override fun getPageTitle(i: Int) = if (i == 0) "Kotlin" else (i == 1) "Java" else (i == 2) "Android"
答案 0 :(得分:3)
when (getCount()) {
0 -> return "a"
1 -> return "b"
2 -> return "c"
else -> return ""
}
或
return when (getCount()) {
0 -> "a"
// etc
else -> ""
}
或
when (getCount()) {
0 -> {
// do something here
}
// etc.
else -> {}
}
答案 1 :(得分:1)
我知道这不是你真正要求的,但实际上可能更容易拥有配对列表并进行正常的索引检索。例如
class ViewPagerAdapter(fm: FragmentManager) : FragmentPagerAdapter(fm) {
private val fragment = listOf("Kotlin" to KotlinListFragment(),
"Java" to JavaListFragment(),
"Android" to AndroidFragment())
override fun getCount() = 3
override fun getItem(i: Int) = fragment[i].second()
override fun getPageTitle(i: Int) = fragment[i].first()
}
看起来你控制了计数范围,但假设你没有,你也可以将i与列表的长度进行比较,如果大于长度,则使用长度代替。这应该能够以一种相当易于管理的方式轻松处理您的“两变量”场景。